基于MFC对话框的键盘消息响应
在MFC中添加键盘的消息响应,通常是通过OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 函数来完成消息的捕捉和响应。
但是今天在对话框的中,对于键盘的消息响应居然没有,比如:VK_UP,VK_DOWN等。
找了下解决的方法:
通过重载另外一个函数:
PreTranslateMessage(MSG* pMsg)
简单的代码如下:
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_UP:
dosomething();
break;
case VK_DOWN:
dosomething();
break;
case VK_LEFT: //
dosomething();
break;
case VK_RIGHT:
dosomething();
break;
default:
MessageBox("Press the arrow keys only");
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
参考资料:
MFC对话框中控制按键响应
http://www.cnblogs.com/omg6100/archive/2009/04/30/1447157.html
《基于MFC的OpenGL编程》Part 6 Keyboard and Mouse Control
http://www.cnblogs.com/phinecos/archive/2008/11/05/1327443.html

浙公网安备 33010602011771号