VC中对话框如何屏蔽ESC和ENTER键

来源:互联网 发布:nosql和mysql的区别 编辑:程序博客网 时间:2024/05/21 03:28

 

有三种方法:

(1)         重载CDialog的两个虚函数

virtual void OnOK();

virtual void OnCancel();

使其什么也不做。

最后,不要忘记重载WM_CLOSE消息,在其中加入DestroyWindow();以销毁窗体。

(2)         在对话框的属性中将另一按钮设为defaultbutton

(3)         重载PreTranslateMessage消息,在其中加欲处理 ,如下:

BOOL   CTeeeDlg::PreTranslateMessage(MSG*   pMsg)    

{  

        if   (pMsg->message   ==WM_KEYDOWN)  

        {  

                 int   nVirtKey   =   (int)   wParam;          

                 if   (nVirtKey==VK_RETURN)  

                 {  

                             ......//如果是回车在这里做你要做的事情,或者什么也不作  

                             return   TRUE;  

                 }  

                 if   (nVirtKey==VK_ESCAPE)  

                 {  

                           ......//如果是ESC在这里做你要做的事情,或者什么也不作  

                           return   TRUE;  

                 }  

          }  

        return   CDialog::PreTranslateMessage(pMsg);  

  }  


 

原创粉丝点击