基于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

posted @ 2013-08-19 19:00  Jremmy  阅读(346)  评论(0)    收藏  举报