Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何检查用户是否按了编辑控件内的键_C++_C_Winapi - Fatal编程技术网

C++ 如何检查用户是否按了编辑控件内的键

C++ 如何检查用户是否按了编辑控件内的键,c++,c,winapi,C++,C,Winapi,我的代码中有一个编辑控件(你可以在这里写东西),我希望当用户输入enter(比如-username/pass)时,它会做一些事情 例如,当你登录到一个站点并输入用户名和密码时,如果你点击回车,它会自动为你登录,而不是点击“连接”按钮 我有以下代码: ChatHwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", NULL, WS_CHILD | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROL

我的代码中有一个编辑控件(你可以在这里写东西),我希望当用户输入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
它是用WinAPI编写的


谢谢

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

如果您有一个对话框,Enter键将以单独的方式自动处理

如果您有自己的帧控件,并且希望详细地单独处理输入,则有两种选择:

  • 使用消息循环并预翻译(我使用来自MFC的这个词)输入消息
  • 子类化控件以访问控件接收的所有消息
  • 你可以用钩子(但那太过分了)

  • 我以前从未做过这样的事。。。你能给我看一下代码吗?因为我不知道如何使用EN_KILLFOCUS,也不知道在WM_命令中放什么。。。谢谢处理来自控件的消息是非常基本的事情。找到一本书或在线教程。我有一个对话框,正如你所看到的,我已经使用了内置的“编辑”类