win32项目中的SendMessage有不同的结果

时间:2016-02-16 21:23:38

标签: c++ codeblocks sendmessage win32gui

我有一个win32项目,它有2个文本窗口(inputArea,outputArea)和2个按钮(sendButton和ResetButton)。

我的问题是,当我按下Reset时,我想清除两个区域的文本,并且inputArea被清除但outputArea变色。

以下是我尝试的代码:

case IDC_ResetButton:
{
   SendMessage(hwndInputArea, WM_SETTEXT, NULL, NULL);
   SendMessage(hwndOutputArea, WM_SETTEXT, NULL, NULL);
   break;
}

我的初始输入区域:

enter image description here

我的初始输出区域:

enter image description here

以下是我按下Reset时输出区域会发生什么:

enter image description here

另外,我分别尝试了每一行代码并且它们都有效,但是当我把它们都放在一起时,我得到了outputArea的结果,我找不到原因。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我猜这是editcontrol。 有三种颜色可供选择。

·文字颜色
·背景颜色
·画笔

EngineeringController

(1)(2)...制作相同的颜色

答案 1 :(得分:-1)

尝试按下这样的按钮情况来编辑控件的句柄(将IDC_EDIT1和2更改为编辑控件ID):

case IDC_ResetButton:
{
hwndInputArea = GetDlgItem(hwndDlg,IDC_EDIT1);
hwndOutputArea = GetDlgItem(hwndDlg,IDC_EDIT2);

SendMessage(hwndInputArea, WM_SETTEXT, 0, NULL);
SendMessage(hwndOutputArea, WM_SETTEXT, 0, NULL);
break;
}