有关edit控件的消息问题

EricChan1986 2010-10-18 09:47:41
大家好,我想请问一下当Edit控件里的内容发生改变的时候他会向操作系统发出什么message呀?假如我要在edit控件里输入“he”,它是会发出两次该message么?小弟初学SDK编程,还望大家指导!
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
EricChan1986 2010-10-18
  • 打赏
  • 举报
回复
我现在的做法是在WM_PAINT消息的处理部分这样写:
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
GetWindowText(hwndEdit, pdest, MAX_TEXT_LENGTH);
TextOut(hdc, 30, 80, pdest, strlen(pdest));
EndPaint(hwnd, &ps);
return 0;

但这样似乎只是在输入中文之后才会调用一次TextOut进行输入,如果一直输入的都是英文,则只会输出第一个输入的字母,请问这是怎么回事呢?
EricChan1986 2010-10-18
  • 打赏
  • 举报
回复
我的想法是这样:当edit控件中的输入有变化的时候都会在同一个窗口的另外一个地方用TextOut语句给显示出相同的内容来。请问应该如何实现呢?不求代码,但求思路,谢谢大家。
PS:我的想法是当收到EN_CHANGE消息的时候就调用TextOut语句输出,但问题是如果把输出部分就写在处理EN_CHANGE消息的case中,运行的时候没有任何反应,所以我想是不是只能在处理WM_PAINT的时候进行输出?能不能在处理EN_CHANGE消息的时候给系统发送一条WM_PAINT消息呢?
shexinwei 2010-10-18
  • 打赏
  • 举报
回复
EN_CHANGE
Sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after the system updates the screen. The parent window of the edit control receives this notification message through a WM_COMMAND message.
EricChan1986 2010-10-18
  • 打赏
  • 举报
回复
ON_EN_CHANGE貌似是MFC里的,怎么编译的时候显示“undeclared identifier”呢?这次的要求是用纯sdk编程,不能用MFC框架。
Eleven 2010-10-18
  • 打赏
  • 举报
回复
EN_CHANGE消息
case WM_COMMAND:
{
if(EN_CHANGE == HIWORD(wParam))
{
// ...
}
}
break;
shexinwei 2010-10-18
  • 打赏
  • 举报
回复
ON_EN_CHANGE The user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after Windows updates the display

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧