VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 986|回复: 2

[已解决]如何解决mfc程序一按Enter就退出?

[复制链接]
73_avatar_middle
最佳答案
0 
在线会员 发表于 2021-7-25 10:29:39 | 显示全部楼层 |阅读模式
请问为什么执行mfc的时候问什么一按Enter就退出程序了,有什么方法能让它不会因为Enter退出吗?
最佳答案
31_avatar_small
2021-7-25 16:01:50
MFC有两个按键消息要自己处理, Enter、ESC键,这两个按键会导致程序退出,
重写 virtual BOOL PreTranslateMessage(MSG* pMsg) 过滤这两个按键消息,就可以解决这些问题。

  1. BOOL CxxDlg::PreTranslateMessage(MSG* pMsg)   
  2. {  
  3.     if (pMsg->message == WM_KEYDOWN)  
  4.     {  
  5.         switch(pMsg->wParam)  
  6.         {
  7.         // 回车键,返回TRUE表示该消息已处理,不再往下传递
  8.         case VK_RETURN:  
  9.             return TRUE;  
  10.         // // ESC键,返回TRUE表示该消息已处理,不再往下传递
  11.         case VK_ESCAPE:  
  12.             return TRUE;  

  13.         default:  
  14.             break;  
  15.         }  
  16.     }  

  17.     return CDialog::PreTranslateMessage(pMsg);  
  18. }  
复制代码




上一篇:MFC 实现计算器加法
下一篇:多线程封装成DLL动态链接库相关教程
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-7-25 16:01:50 | 显示全部楼层    本楼为最佳答案   
bestAnswer
MFC有两个按键消息要自己处理, Enter、ESC键,这两个按键会导致程序退出,
重写 virtual BOOL PreTranslateMessage(MSG* pMsg) 过滤这两个按键消息,就可以解决这些问题。

  1. BOOL CxxDlg::PreTranslateMessage(MSG* pMsg)   
  2. {  
  3.     if (pMsg->message == WM_KEYDOWN)  
  4.     {  
  5.         switch(pMsg->wParam)  
  6.         {
  7.         // 回车键,返回TRUE表示该消息已处理,不再往下传递
  8.         case VK_RETURN:  
  9.             return TRUE;  
  10.         // // ESC键,返回TRUE表示该消息已处理,不再往下传递
  11.         case VK_ESCAPE:  
  12.             return TRUE;  

  13.         default:  
  14.             break;  
  15.         }  
  16.     }  

  17.     return CDialog::PreTranslateMessage(pMsg);  
  18. }  
复制代码
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-26 22:57:31 | 显示全部楼层
实测能用,谢谢
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-8 16:58

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表