【发布时间】:2013-03-29 20:57:58
【问题描述】:
我有一个编辑控件
HWND hInput = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL,
0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_INPUT, GetModuleHandle(NULL), NULL);
还有一个按钮:
HWND hSendButton = CreateWindowEx(WS_EX_CLIENTEDGE,"BUTTON","Send!",
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
0,0,0,0,hwnd,(HMENU)IDC_MAIN_SENDBUTTON,GetModuleHandle(NULL),NULL);
有没有办法查看在编辑控件中键入时按下 Enter 键的时间 并像按下按钮一样发送消息?
我觉得可能
SendMessage(hwnd,WM_COMMAND,(WPARAM)IDC_MAIN_SENDBUTTON,LPARAM(0));
可以完成发送消息的工作,但我仍然无法捕获 Enter 键。
提前谢谢你。
【问题讨论】:
-
执行此操作的传统方法是声明一个快捷键表,将 ENTER 定义为映射到
IDC_MAIN_SENDBUTTON。另请注意,GetModuleHandle(NULL)不是最佳实践,因为它将您的窗口放在主可执行文件的命名空间中,而不是创建窗口的模块中。