MFC怎样处理键盘事件。想用mfc写个游戏,不知道怎样用键盘控制。
MFC有个OnKeyDown函数,具体有三个参数。
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags
);
其中,第一个参数表示哪个按键。
nChar
Specifies the virtual key code of the given key. For a list of of standard virtual key codes, see Winuser.h
这些虚拟键值,有一些是系统常量,以VK_打头。比如Shift是VK_SHIFT(我不知道怎么区分左右),这些虚拟键值,可以在资源窗口中新建一个Accelerator,然后在右边双击,打开新建快捷键对话框,如图中红圈所示。
也可以直接使用无符号整数。
如果想知道具体哪个键对应哪个整数,可以专门写一个MFC程序,构造一个OnKeyDown函数,再使用一个控件输出nChar,就可以了。
其实我也是一知半解,希望对你能有所帮助。如果还有什么问题,可以发站内信,我一定知无不言。
参考资料是在线MSDN,可以看一看。
参考资料: http://msdn.microsoft.com/en-us/983st27a(VS.71).aspx
1、了解VC键值表,即键盘、鼠标每个按键对应的数值,这样,你才能在响应按键消息的函数中得知用户按下了哪一个键。
2、响应按键消息的函数。在VC中,我们可以在CDialog::PreTranslateMessage()函数中对用户的按键操作进行捕获,并进行相应的处理。
综合上面所讲,举一个简单的例子,应该就很清楚了。
首先新建一个基于对话框的MFC(.exe)应用程序,工程名为Game,然后在主对话框类CGameDlg上点右键,添加一个虚函数PreTranslateMessage。在BOOL CGameDlg::PreTranslateMessage(MSG* pMsg)函数中添加如下代码:
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
MessageBox("你按下了键盘上的回车键!");
然后编译运行,按键盘上的回车键,就会弹出提示对话框。
依次类推,你可以在这里捕获到任何关于键盘和鼠标的按键消息,并在这里做响应的处理。
你把你的邮箱留给我,我给你发过去。
这个程序里边有你想要的内容,而且是MFC游戏,邮箱多少,我可以给你发过去!