使用windows.h,鼠标单击时从聊天框中删除文本(C ++)

时间:2012-04-19 17:25:56

标签: c++

对不起,标题有点模糊。

基本上,我正在使用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);

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要回复控件的WM_ACTIVATE消息。它在wParam中有一个参数,告诉您控件是激活还是取消激活。如果它被激活,请检查窗口文本以查看它是否等于您的提示字符串;如果是这样,请将字体恢复正常并使用SetWindowText清除文本。如果它已被停用,请使用GetWindowText查看文本是否为空,如果是,请将字体设置为斜体并替换提示字符串。