资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

按纽 问题

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

 
   
                         
                 
              我作了个按纽“确定”   怎么解决回车     后响应这个按纽  
   
 

网友回答:

发表者:mscf

CWnd::PreTranslateMessage中把回车键过滤掉

发表者:mscf

http://www.vckbase.com/document/viewdoc/?id=481

发表者:kugou123

【方法1】  
  可以先重载OnOK函数  
  voidCTestDlg::OnOK()  
  {     //里面什么也不写}  
   
  然后重载PreTranslateMessage函数  
  把ESC键的消息,用RETURN键的消息替换,这样,按ESC的时候,也会执行刚才的OnOK函数,这样问题就可以解决了。  
   
  BOOL   CxxxDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
    if(pMsg->message==WM_KEYDOWN   &&   pMsg->wParam==VK_ESCAPE)    
    {    
    pMsg->wParam=VK_RETURN;   //将ESC键的消息替换为回车键的消息,这样,按ESC的时候  
                                                                                      //也会去调用OnOK函数,而OnOK什么也不做,这样ESC也被屏蔽  
      }    
    return   CDialog::PreTranslateMessage(pMsg);  
   
  }  
   
  【方法2】  
   
  直接在重载的PreTranslateMessage函数中屏蔽回车和ESC的消息,和以上方法大同小异:  
   
  BOOL   CxxxDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
    if(pMsg->message==WM_KEYDOWN   &&   pMsg->wParam==VK_ESCAPE)     return   TRUE;  
    if(pMsg->message==WM_KEYDOWN   &&   pMsg->wParam==VK_RETUEN)   return   TRUE;    
    else    
          return   CDialog::PreTranslateMessage(pMsg);  
  }  
 


 

 
热门推荐笔记本: IBM笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved