這是由於你的對話框有控件,這樣默認焦點就落在某一按紐之上,消息由該控件響應.解決方法是重載PretranslateMessage()web
BOOL CMyTextDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_KEYDOWN) { if( pMsg->wParam==8 )//pMsg->wParam的值就是對應的按鍵值 messagebox("Backspace鍵按下了..."); return TRUE; } else { return CDialog::PreTranslateMessage(pMsg); } }
這個函數裏還能夠處理組合鍵消息,以下:函數
if (pMsg->message == WM_KEYDOWN) { if( GetKeyState(VK_SHIFT)<0 ) //shift鍵是否按下 { if( 187==pMsg->wParam ) //pMsg->wParam的值就是對應的按鍵值 messagebox(" + 號鍵按下了..."); } return TRUE; }