读书人

为什么小弟我的对话框程序中OnKeyDown

发布时间: 2012-02-10 21:27:42 作者: rapoo

为什么我的对话框程序中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);
}

读书人网 >VC/MFC

热点推荐