为什么我的对话框程序中OnKeyDown没有反应?
我只是用Wizard建了一个简单的MFC对话框,不添加任何功能,只是作为测试程序。
我添加了OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 这个消息处理函数。
void CMy11Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
MessageBox( "ok ");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
我觉得当我在程序中按下任意键应该会执行MessageBox,但是却没有。不知是什么原因?
[解决办法]
重载
BOOL CXXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if( pMsg-> message> =WM_KEYDOWN && pMsg-> message <=WM_KEYUP)
{
this-> SendMessage(pMsg-> message,pMsg-> wParam,pMsg-> lParam);
return TRUE;
}
else
return CDialog::PreTranslateMessage(pMsg);
}