[英]WM_KEYDOWN doesn't response
如果WM_KEYDOWN具有messagebox()
以便了解这种情况的功能。
有人可以帮助我,为什么这个案件没有回应?
我尝试从键盘和调试器插入一些字母而不会出现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的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.