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

在做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;

   ...

 }

....

}

这样就可以响应方向键了。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值