MFC中,基于对话框的程序如何响应OnChar呢?
1个回答
展开全部
试时发现不会进入这两个函数,必须重定义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 default
if(nChar=='a')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询