网上大部分人的做法是通过拦截按键消息来屏蔽,实际正确的做法是:

1. 在对话框头文件重载 OnOK()(回车会触发) 和 OnCancel()(ESC会触发) 函数。

// XXXXXXXDlg.h
class CXXXXXXXDlg : public CDialogEx
{
...... private: virtual void OnOK() {};
virtual void OnCancel() {}; ......
};

2. 重载之后会导致无法关闭窗口,原因是因为被拦截了,所需要增加 WM_CLOSE() 消息响应。

// XXXXXXXDlg.cpp
void CXXXXXXXDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
EndDialog(IDCANCEL);
CDialogEx::OnClose();
}

参考文章:https://blog.csdn.net/bbdxf/article/details/7395201

MFC中解决回车和ESC关闭的问题,重载OnOk(),OnCancel()函数的正确做法_笨笨D幸福 - 后花园-CSDN博客

【随笔记】MFC 解决按下 ESC、Enter 键会自动退出的问题的更多相关文章

  1. 解决windows下MySQL表名大写自动变小写的问题

    解决windows下MySQL表名大写自动变小写的问题   有些人可能会遇到在windows下,表名不能用大写字母, 即使使用了大写字母的建表语句,还是会被自动转成小写.   解决方法:  打开 My ...

  2. 回车和换行有什么区别?我们平时按下的Enter键是回车还是换行?

    来源:http://www.52rd.com/blog/Detail_RD.Blog_imjacob_12317.html -------------------------------------- ...

  3. jquery中判断是否按下回车enter键

    <script>   function sendsubmit()   {   $("#userLoginForm").submit();   return false; ...

  4. JQuery判断页面是否按下了Enter键

    $('#someTextBox').keypress(function(event){ var keycode = (event.keyCode ? event.keyCode : event.whi ...

  5. 转载自CSDN,结论:windows下按ENTER键应该是\r\n ascii码为 13 10

    记得在Windows下学X86汇编语言时,用0DH(\r)和0AH(\n)来输出回车(跳到下一行的开始处).问题来了,在Windows下是 先回车再换行呢还是先换行再回车呢?在Unix系统下换行只有\ ...

  6. enter键实现自动登录

    将登录窗口的属性acceptbutton更改为登录按钮!

  7. js防止回车(enter)键提交表单及javascript中event.keycode

      如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里 ...

  8. [MFC]解决回车键 ESC 默认关闭窗口的一般方法

    在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上, ...

  9. MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法

    http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序  屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下 ...

  10. 按下enter键后表单自动提交问题

    在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Aja ...

随机推荐

  1. C#接口设计

    基本架构 model 实体 说得通俗一些,model中主要是定义前端传过来的变量以及其类型,或者是需要操作的数据库中的某些字段值.举个例子: namespace Test.Models.Book { ...

  2. PYQT5 学习

    zetcode教程 汉化版: https://maicss.gitbook.io/pyqt5-chinese-tutoral/ 官方网站: https://www.riverbankcomputing ...

  3. ES文件传输助手1.0.0

    软件下载地址 1.软件功能 与 ES文件浏览器 的快传功能 直接传输文件 支持接受文件点击预览 可以多台电脑使用该软件,从而实现电脑与电脑局域网互传文件 单个文件夹上传会递归上传该文件夹下所有文件夹与 ...

  4. IDEA git配置

    必备:安装Idea \ git配置git坏境:在环境变量中添加git安装包bin目录即可 1.去git官网申请一个账号 https://github.com/ 创建一个新的项目 2.在快速启动栏或者g ...

  5. KVC原理与数据筛选

    作者:宋宏帅 1 前言 在技术论坛中看到一则很有意思的KVC案例: @interface Person : NSObject @property (nonatomic, copy) NSString ...

  6. Nginx 安装篇-1.19.9版本源码安装

    系统环境:CentOS 8.5 64位 [开始安装](此步骤引自网络教程) https://www.cnblogs.com/torchstar/p/16027538.html 教程比较详细,一步步操作 ...

  7. 【每日一题】【DFS】2022年1月5日-543. 二叉树的直径

    给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 答案: /** * Definition for a binary ...

  8. kubernetes CKA题库(附答案)

    第一题 RBAC授权问题权重: 4% 设置配置环境:[student@node-1] $ kubectl config use-context k8s Context为部署管道创建一个新的Cluste ...

  9. cs231n__4.1 Backpropagation and Neural Network

    CS231n 4.1 Backpropagation 回顾: 两个损失函数: 优化的方法: 如何计算梯度: 用有限差分估计 直接计算偏导数(解析梯度) 今天,我们要学习如何计算任意复杂度的解析梯度 要 ...

  10. uniapp 微信小程序 根据经纬度解析地址(腾讯地图)

    //引入腾旭地图sdk import QQMapWX from '../../common/qqmap-wx-jssdk.js' onLoad(){ this.getMapAddress() }, m ...