我创建了一个MFC的对话框,现在我想加入一个键盘事件,请问应该在哪个位置写什么代码
2个回答
展开全部
//.h文件中添加
virtual BOOL PreTranslateMessage(MSG* pMsg);
//.cpp文件中添加,根据以下代码自己调整
BEGIN_MESSAGE_MAP(CDlgXXX, CDialog)
ON_WM_KEYDOWN()
ON_WM_KEYUP()
END_MESSAGE_MAP()
BOOL CDlgXXX::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
{
if((pMsg->wParam == VK_RETURN) || (pMsg->wParam == VK_ESCAPE))
return TRUE;
switch(pMsg->wParam)
{
case VK_UP:
break;
case VK_DOWN:
break;
case VK_LEFT:
break;
case VK_RIGHT:
break;
case 'Q':
break;
case 'S':
break;
case 'X':
break;
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
更多追问追答
追问
请问分别放在.h和.cpp的哪里
追答
.h:放在类声明里面啊,这就是简单的函数声明啊,只不过这个是虚函数,从基类继承过来的。
.cpp:生成的cpp文件肯定有这一句
BEGIN_MESSAGE_MAP(CDlgXXX, CDialog)
END_MESSAGE_MAP()
在里面添加
ON_WM_KEYDOWN()
ON_WM_KEYUP()
然后剩下的那个就是函数的实现啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询