对不起,标题有点模糊。
基本上,我正在使用C ++编写聊天程序并使用windows.h API。我的大部分程序都在工作,只是小东西不能正常工作。我有一个用户输入他们想要说的内容的框,并在该框中以斜体显示“在此处输入文本”。我想设置它,以便当用户点击该框时,这些单词消失,用户可以自由键入。正如现在设置的那样,如果他们在框内单击,则会转到单词“here”的末尾,他们必须手动删除这些单词。
有一种简单的方法吗?可能在创建框或文本时?或者我必须添加自己的逻辑才能实现这个目标吗?
附件是我创建框和我设置字体的代码:
盒:
hwSendEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", "Enter Text Here",
WS_CHILD|WS_VISIBLE, 2, 215, 790, 22, hwMain, 0, hInst, 0);
字体:
chFont = CreateFont(12, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Tahoma");
SendMessage(hwSendEdit, WM_SETFONT, reinterpret_cast<WPARAM>(chFont), 0);
感谢您提供任何帮助。
答案 0 :(得分:1)
您需要回复控件的WM_ACTIVATE
消息。它在wParam
中有一个参数,告诉您控件是激活还是取消激活。如果它被激活,请检查窗口文本以查看它是否等于您的提示字符串;如果是这样,请将字体恢复正常并使用SetWindowText
清除文本。如果它已被停用,请使用GetWindowText
查看文本是否为空,如果是,请将字体设置为斜体并替换提示字符串。