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

在VC6.0中,我们可以对CDialog选中,按F12,然后在该类中找到虚函数 

virtual void OnOK();
virtual void OnCancel();

我们改写他。

屏蔽ESC\Enter:方法一:

  重载CDialog的OnCancel   ,且让这两个函数的实现为空。  
  加入WM_CLOSE消息处理,实现如下,  
  void   CMyDialog::OnClose()  
  {  
        DestroyWindow();  
  }   
   
屏蔽ESC\Enter:方法二:

  将另一按钮设为defaultbutton在属性中改。
  也可重载对话框类的PreTranslateMessage(MSG*   pMsg)这个虚函数  
  在其中加入如下代码BOOL   CTeeeDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
        //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
        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);  
  }  


你可能感兴趣的:(Class)