MFC 接收键盘输入指令
程序接收键盘输入并作出相应的反馈是一个非常常见的功能,在MFC中提供了WM_KEYDOWN,WM_KEYUP这些消息来反便我们进行编程,但是这是在窗体没有其他控件的情况下才适用的。当有其他控件时,其他控件(其实也是窗体)肯定会有一个获得焦点使得这些消息失效,我们可以通过重载对话框程序的PreTranslateMessage(MSG* pMsg)虚函数来实现这一功能。
首先在对话框类中先声明下:
BOOL PreTranslateMessage(MSG* pMsg);然后就可以直接对键盘消息进行处理了,示例如下:
BOOL Dlg::PreTranslateMessage(MSG* pMsg)//Dlg为对话框类 { if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_UP: printf("UP\n"); break; case VK_DOWN: printf("DOWN\n"); break; case VK_LEFT: printf("LEFT\n"); break; case VK_RIGHT: printf("RIGHT\n"); break; default: break; } } return CDialog::PreTranslateMessage(pMsg); }由上述的代码也可以发现,我们不仅仅可以响应键盘消息,只要愿意,可以自己在这里定义一个消息循环来处理想做的事。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。