如何检查用户是否在Edit控件中按下了某个键

时间:2013-11-02 20:51:32

标签: c++ c winapi

我的代码中有一个Edit Controll(你可以在那里写东西),我希望当用户输入enter时(比如 - username / pass的形式),它会做点什么..

例如,当您登录网站并输入用户名并通过时,如果单击回车,则会自动登录,而不是单击“连接”按钮...

我有以下代码:

ChatHwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", NULL, WS_CHILD | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_LEFT | ES_MULTILINE | ES_WANTRETURN , 15, 15, 550, 300, hwnd, NULL, 
(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL); // Creat chat log

它是用Win API编写的......

谢谢!

2 个答案:

答案 0 :(得分:2)

从控件中删除ES_WANTRETURN样式,以便返回键转到父对话框。在父对话框中处理EN_KILLFOCUS通知(在WM_COMMAND中)。通知附带的wParam将告诉您是否是您感兴趣的编辑控件。

答案 1 :(得分:0)

如果您有一个Dialog,则Enter键会以单独的方式自动处理。

如果你有自己的帧控制并希望在细节上单独处理输入,你有两个选择:

  1. 使用消息Loop和PreTranslate(我使用MFC中的这个词)输入消息。
  2. 对控件进行子类化以获取对控件接收的所有消息的访问权。
  3. 你可以使用一个钩子(但这就是矫枉过正)