MFC对话框里不响应按键事件的解决办法

原因:MFC在进行设计的时候,这两个消息被对话框上的控件截获了,不能到达消息响应函数。
1,在窗口类的声明时添加一个虚函数:virtual BOOL PreTranslateMessage(MSG* pMsg);
2,在.cpp 中实现。
BOOL CCustomJobSetDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (WM_KEYDOWN == pMsg->message) {
if(!(GetKeyState(VK_SHIFT) < 0)) {
switch(pMsg->wParam) {
case VK_PRIOR:
case VK_NEXT:
case VK_END:
case VK_HOME:
case VK_LEFT:
case VK_UP:
case VK_RIGHT:
case VK_DOWN:
return 1;
}
}
}

return CDialog::PreTranslateMessage(pMsg);
}

posted @ 2020-08-27 15:40  山的那一边  阅读(1350)  评论(0编辑  收藏  举报