在MFC对话框程序中,如果要实现键盘消息的响应,该怎么办呢?
直接在OnKeyDown()消息响应函数里添加代码,似乎没反应,应该是被对话框程序截获了。
我们可以在消息转发之前对其进行相应的处理:
BOOL CPicViewDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==VK_LEFT)//左方向键
OnMenuPrepic();
else if(pMsg->wParam==VK_RIGHT)//右方向键
OnMenuNextpic();
else if(pMsg->wParam==VK_F11)//F11键
OnMenuFullscreen();
else if(pMsg->wParam==VK_RETURN)//回车键(这样就不会一敲回车键,对话框就关闭了)
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}