您的位置:首页 > 其它

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

2010-10-08 11:00 225 查看
在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);  
  }  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/summerlemon/archive/2008/04/02/2243930.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class