解决方法是在 CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉.

   直接上代码:

  1. CResultCollectorDlg::PreTranslateMessage(MSG* pMsg)
  2.   {
  3.   if(pMsg->message == WM_KEYDOWN) {
  4.   switch(pMsg->wParam) {
  5.   case VK_RETURN: //回车
  6.   return TRUE;
  7.   case VK_ESCAPE: //ESC
  8.   return TRUE;
  9.   }
  10.   }
  11.   return CDialog::PreTranslateMessage(pMsg);
  12.   }

这样,在对话框上就不会响应回车键和退出键了

但是,这样有个问题, 就是在按钮上按ENTER键也没有反应了, 所以这还不能达到要求

因为回车键enter处理的是CDilog::OnOk()函数,因此,我们重载以下此函数,并在PreTranslateMessage()函数中只屏蔽ESC就可以了

  1. CResultCollectorDlg::OnOk()
  2. {
  3. // 空函数即可
  4. }

参考资料:

http://topic.csdn.net/t/20030311/11/1515901.html

http://www.wangba.net/jishu/12788279205687.shtml

http://topic.csdn.net/t/20040105/12/2634228.html

最新文章

  1. 前端学PHP之面向对象系列第五篇——对象操作
  2. [Tool] 使用Sublime Text开发Objective-C
  3. css经典布局学习
  4. java安全令牌生成器
  5. [C程序设计语言]第五部分
  6. C++面向对象的编程
  7. pos机套现是怎么回事
  8. linux安装Vmware的时候出现“Could not open /dev/vmmon”
  9. HTML5有语义的内联元素详解
  10. angular input使用输入框filter格式化日期
  11. @NotNull和@NotEmpty和@NotBlank区别
  12. 理解Node.js的事件轮询
  13. (转)关于java.lang.UnsupportedClassVersionError解决方法总结
  14. Markdow使用的简单介绍
  15. SQL语句order by两个字段同时排序。
  16. 非空校验的提示按钮(shiro项目中来的六)
  17. Wpf窗口中打开WinForm窗口
  18. sqlalchemy和flask-sqlalchemy的几种分页方法
  19. windows 下面必备软件
  20. 安卓开发_浅谈Notification(通知栏)

热门文章

  1. java中的codereview
  2. LeetCode560. Subarray Sum Equals K
  3. memcached 经常使用命令最全总结大全
  4. 给linux操作系统安装中文环境
  5. Eclipse 悬浮提示
  6. Eclipse 创建 Java 包
  7. Linux命令之umask
  8. 扒一扒asp.net core mvc控制器的寻找流程
  9. Git安装部署
  10. spring无法启动常见原因及排查方法