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

    技术2026-08-06  7

     

    有三种方法:

    (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);  

      }  

     

    最新回复(0)