在创建对话框类的时候,往往会需要屏蔽一些按键消息。
比如:在对话框界面按下回车按键,会自动退出。或者按下Esc按键会自动退出等。 要屏蔽回车按键,也可以重载OnOK方法。 //**************************************************************************** // Function: CMyDlg::OnOK // Description: disable keyboard input. // Return: // // Parameters: // //**************************************************************************** void CMyDlg::OnOK() { } 要想屏蔽任意按键,那么就通过消息处理来屏蔽。 在对话框类中重载PreTranslateMessage消息处理函数, PreTranslateMessage在消息发送给TranslateMessage函数之前被调用。 重载后代码如: //**************************************************************************** // Function: CMyDlg::PreTranslateMessage // Description: disable keyboard input // Return: // // Parameters: // //**************************************************************************** BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN) { if(pMsg-> wParam==VK_ESCAPE || pMsg-> wParam==VK_RETURN) {// 屏蔽了Esc和Enter按键消息 return FALSE; } } return CDialog::PreTranslateMessage(pMsg); } |
VC 通过消息处理函数屏蔽按键消息
最新推荐文章于 2023-08-24 09:38:30 发布