关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

VC中回车或ESC会关闭窗体

作者:佚名   时间:2012-11-14   分享到:

解决方法是重载PreTranslateMessage(MSG* pMsg)函数:

  1. BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)  
  2. {  
  3.     if((pMsg->message == WM_KEYDOWN)&&(pMsg->wParam == VK_RETURN))  
  4.     {  
  5.         return false;  
  6.     }   
  7.     return CDialog::PreTranslateMessage(pMsg);   
  8. }  
 

 

前段时间又碰到个类似的问题,回车是不关闭对话框了,还能提交表单,但有些网页在输入完回车后响应的是tab键,如:

登录界面,输入用户名后回车,光标会跳至密码输入框!用这种方法就比较麻烦了,这时还是重载WM_GETDEFID消息比较好!

注意:!!!!!重载了WM_GETDEFID消息就不要重载PreTranslateMessage了!!!!!

下面是重载WM_GETDEFID消息的方法

一、添加消息映射

 

二、添加OnGetDefID函数定义

  1. LRESULT CMyDlg::OnGetDefID(WPARAM wParam, LPARAM lParam)  
  2. {  
  3.     return MAKELONG(0, DC_HASDEFID);       
  4. }  
 

 

  1. BEGIN_MESSAGE_MAP(CMyDlg, CDialog)  
  2.     ON_MESSAGE(DM_GETDEFID,   &CMyDlg::OnGetDefID)  
  3. END_MESSAGE_MAP()  



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/contact/20151229/n7405.html

上海联楷网络新闻