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

Using windows.h, remove text from chat box upon mouse click (C++)

本文关键字:聊天 文本 删除 C++ windows 鼠标 单击 使用      更新时间:2023-10-16

抱歉,标题有点模糊。

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

感谢您提供的任何帮助。

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