mfc按钮名称怎么换行_MFC中解决回车键关闭窗口的一般方法
206351219.doc
第
1
页
共
1
页
在一般情况下编写的对话框程序,
用户在运行的时候,
如果不注意按下了
ENTER
或者
ESC
键,
程序
就会立刻退出,之所以会这样,是因为按下
Enter
键时,
Windows
就会自动去找输入焦点落在了哪一个
按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,
Windows
就
会自动去寻找程序或资源所指定的默认按钮
(
默认按钮边框较粗
)
。如果对话框没有默认按钮,那么即使对
话框中没有
OK
按钮,
OnOK
函数也会自动被调用,
对于一个普通的对话框程序来说,
OnOK
函数的调用,
以为着程序会立刻退出。
为了使
Enter
键无效,
最简单的办法就是将
CExDlg
的
OnOK
函数写成空函数,
然后针对
OK
按钮写一个新的函数来响应。
ESC
键的原理也是如此,它是默认和
OnCancel
函数映射在
一起的。对于
ESC
键,需要自己重载
CDialog
类的
PreTranslateMessage
函数,当发现是
ESC
键的
时候,过滤掉这个消息或者是替换掉这个消息。
以下是简单的代码示例:
【方法
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_RETURN) return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
mfc按钮名称怎么换行_MFC中解决回车键关闭窗口的一般方法相关推荐
- linux系统如何关闭触控板,在Deepin Linux 15.7系统中开启或关闭触摸板的方法
在Deepin Linux 15.7操作系统中开启或关闭触摸板有两种方法,一种是图形界面中操作,另一种是命令行中使用脚本实现. 一.图形界面操作 打开Deepin Linux 15.7系统的控制中心, ...
- Windows Mobil中解决日期显示不正常的方法
在SQL中经行日期转换 :convert(nvarchar(10),日期字段,126) AS 日期 转载于:https://www.cnblogs.com/maoyu417/archive/2007/ ...
- web页面中按ESC关闭窗口
<script language="javascript" type="text/javascript"> document.οnkeypress= ...
- vue js中解决二进制转图片显示问题
一:问题 工作中碰到的问题,在处理接口返回的验证码图片时,由于返回的是encode编码代码,在js端获取到数据之后,通过函数encodeURI()来进行解码,之后可以通过在src中设置来实现图片显示: ...
- MFC中解决回车和ESC关闭的问题,重载OnOk(),OnCancel()函数的正确做法
本文参考了如下文章: http://msdn.microsoft.com/en-us/library/66b3y2ab(VS.71).aspx http://topic.csdn.net/u/2010 ...
- 【HTML】处理<br>换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决
[HTML]处理 换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决 参考文章: (1)[HTML]处理 换行符 ...
- rf中resourceid_解决VC++ MFC程序resource.h头文件中ID重复问题
解决VC++ MFC程序resource.h头文件中ID重复问题 2018-12-07 一般MFC开发的时候,如果有些资源是从其他工程中移植到本工程的, 而在资源移植的时候都要将对应的资源ID复制到本 ...
- 基于ODBC的MFC与sql_server2008r2连接教程和错误解决方法
基于ODBC的MFC与sql_server2008r2连接教程和错误解决方法 应用环境: 编译平台:vs2013 数据库:Mysql Server2008r2 桥接软件: ODBC(微软提供的开放数据 ...
- JSP设置Excel表格换行_Excel中快速将阿拉伯数字转化为大写文字的妙招
在职场办公中,Excel的使用频率可谓是非常高啦.为了保证工作可以按时完成都会学习一些自己需要的Excel技巧来辅助整理表格.今天小编为大家分享怎样快速将Excel表格中的阿拉伯数字转换成大写文字,一 ...
最新文章
- ov5640帧率配置_一文看懂赛博朋克2077中低配置的设置方法和能畅玩的电脑有哪些?...
- 基础语法(IDE:PyCharm)
- eclipse中无法移除jar包_IDEA中已配置阿里镜像,但maven无法下载jar包的问题
- JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
- 合肥特殊教育中专学校计算机,安徽省特殊教育中专学校
- think python下载 中文版开源!这或许是最经典的编程教材
- 【原型设计】实用节:Axure RP9 的一些常用的快捷按键组合操作
- 开源的酷炫猜歌喝酒小程序
- 电商年底年终促销页面,这种创意你收好
- 构建第一个Spring Boot2.0应用之项目创建(一)
- 利用kaptcha生成登录验证码
- mongo数据库索引原理
- 你控制不了情绪,怎么过得好这一生?
- 图书管理系统项目导入
- ospf在NBMA网络中的实验(保姆级别)
- python获取文件路径名_python文件名获取文件路径
- 植入大脑电极,晚期渐冻症患者通过神经信号交流!匹配准确率80%,有效时间仅1/3...
- poj 1608 dp(Banal Ticket)
- 【云扩RPA】Table
- 2021-10-27 - 开发人员将大多数时间花到了探究系统本身上