或許還有其它更好的辦法,但下面這個(gè)肯定有用,主要就是重載PreTranslateMessage()函數,在這個(gè)函數里捕捉ESC和ENTER鍵按下時(shí)的消息,然后什么都不做,或是添加代碼完成你自己想要實(shí)現的功能。
1.完全屏蔽ESC鍵與ENTER回車(chē)鍵
BOOL CQQ_chart_serverDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
return TRUE;
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
2.完全屏蔽ESC鍵,捕捉ENTER回車(chē)鍵
BOOL CQQ_chart_clientDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN )
{
if(GetFocus()->GetDlgCtrlID()==IDC_MSG_SEND)//按下回車(chē),如果當前焦點(diǎn)是在自己期望的控件上
{
CQQ_chart_clientDlg::OnBnClickedBtnSend();//添加自己的處理代碼
}
return TRUE;
}
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
該代碼在VS2010中的MFC程序測試通過(guò),完全可以實(shí)現,紅色的代碼是可以根據自己的實(shí)際情況修改的。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。