gpt4 book ai didi

C++ WIN32 WM_KEYDOWN 没有响应

转载 作者:行者123 更新时间:2023-11-28 00:38:28 26 4
gpt4 key购买 nike

如果 WM_KEYDOWN 有一个 messagebox() 以便理解这个案例的功能。

谁能帮我看看为什么这个case没 react ?

我正在尝试调试这个,同时我从键盘和调试器插入一些字母,但没有出现 WM_KEYDOWN 情况。

感谢大家!

这是我的代码:

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_CREATE:
break;
case WM_COMMAND:
break;
case WM_KEYDOWN:
MessageBox(NULL,L"test",L"Information",MB_ICONINFORMATION);
break;
case WM_DESTROY:
// DESTROY WINDOW
break;
default:
return DefWindowProc( hwnd, msg, wParam, lParam );
}
return 0;
}

最佳答案

MessageBox() 显示一个弹出对话框,然后运行它自己的模式消息循环来为该对话框提供消息服务,直到它关闭。当对话框处于事件状态时,您的击键将转到该对话框,而不是您的 WndProc() 所属的窗口。这就是为什么您没有收到更多 WM_KEYDOWN 消息的原因。您不应该使用 MessageBox() 作为 UI 消息的调试工具,因为它会改变 UI 消息的流向。请改用 OutputDebugString()。这样,您的调试器(或 SysInternals DebugView 等外部查看器)可以显示您的调试消息,而不会影响您的 UI 行为。

关于C++ WIN32 WM_KEYDOWN 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20008838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com