您的位置:首页 > 其它

MFC无法响应键盘方向键问题

2014-12-02 13:30 204 查看
在做MFC小游戏过程中,响应方向键一个方法。

方向键码值:

VK_UP

VK_DOWN

VK_LEFT

VK_RIGHT

在程序中重载了OnChar()函数,以及OnPretranslateMessage(),OnKeyDown(),调试发现,按方向键后,并不执行这些函数。暂时还不清楚什么原因,希望博友们可以知道告诉一下我。

这里想出了一个解决办法:注册热键的方式

1. 重载OnInitDialog()

BOOL RegisterHotKey( 
  HWND hWnd, 
  int id, 
  UINT fsModifiers, 
  UINT vk 
);

hwnd 对话框句柄

id 热键的标示号

fsmodifiers 组合键选择(这里设为NULL)

vk 键值

::OnInitDialog()

{

....

....

RegisterHotKey(m_hWnd,1,NULL,VK_UP);

RegisterHotKey(m_hWnd,2,NULL,VK_DOWN);

RegisterHotKey(m_hWnd,3,NULL,VK_LEFT);

RegisterHotKey(m_hWnd,4,NULL,VK_RIGHT);

....

}

2.重载OnHotKey()

::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)

{

switch (nHotKetld)

{

case 1:break;

case 2:break;

...

}

....

}

这样就可以响应方向键了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: