MFC中,基于对话框的程序如何响应OnChar呢?

如题所述

试时发现不会进入这两个函数,必须重定义PreTranslateMessage()虚函数才能正确地进入这两个消息函数,具体实现如下:BOOL CTestDlg::PreTranslateMessage(MSG* pMsg){SendMessage(pMsg-message,pMsg-wParam,pMsg-lParam);return 0;//return CDialog::PreTranslateMessage(pMsg);}这样,程序就能正确地调用onKeyDown和onChar这两个函数了,且onKeyDown()在onCchar()之前处理的。这样就能在对话框中响应WM_CHAR、WM_KEYDOWM消息了,注意在发送WM_CHAR时,实际发送了三个消息即 WM_CHARWM_KEYDOWMWM_KEYUP所以,如果你有如下代码:void CMy1Dlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){// TODO: Add your message handler code here and/or call defaultif(nChar=='a')
温馨提示:答案为网友推荐,仅供参考
相似回答