MFC EDIT控件 接收“回车”与“ESC”键 退出问题!
在做MFC程序开发过程中,经常会出现DEIT控制按下了ENTER或者ESC键后,程序就会立刻退出(这是MFCR )实现的一种机制,但往往并不是我们想要的),今天教大家两种方法解决。
一下是简单的代码示例:
【方法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的消息,和以上方法大同小异:
在.h文件中加入 virtual BOOL PreTranslateMessage(MSG* pMsg);
在.C文件中实现如下代码即可!
BOOL BaseOperation::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
return TRUE;
}
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
建议直接用方法2操作,对了,如果程序中有多个对话框或都窗口,最好是对每一个对话框及窗口均重载PreTranslateMessage方法
MFC EDIT控件 接收“回车”与“ESC”键 退出问题!相关推荐
- MFC EDIT控件的使用记录
mfc和qt不同,mfc没有单行edit控件,而qt有,下面我就来介绍mfc如何将edit设置为单行控件 CFont * f; f = new CFont; f->CreateFont( 50, ...
- c++:MFC EDIT控件内容的四种处理方式使用(CEdit控件类型与CString 值联动)
EDIT控件的使用 1.UpdateData()函数 2.获取控件内容 ①句柄操作 ②变量操作 1.UpdateData()函数 //UpdateData(FALSE); //将变量的值,输出到与其关 ...
- MFC Edit控件 error:“DDX_Control”: 不能将参数 3 从“int”转换为“CWnd ”
在使用MFC的Edit Control等控件时可能你会遇到这样的问题:error:"DDX_Control": 不能将参数 3 从"int"转换为"C ...
- MFC edit控件设为ReadOnly后,EnableWindow(TRUE)无法恢复
那就不在界面上设置,都有代码来处理 GetDlgItem(ID_EDIT)->EnableWindow(FALSE);//只读. GetDlgItem(ID_EDIT)->EnableWi ...
- MFC中的edit控件
edit control 编辑框 static control 静态文本框控件 Button 按钮控件 第一步,在VS2019中新建一个MFC项目: 第二步,打开资源视图,双击打开窗口,在工具栏中选择 ...
- MFC中通过SendMessage修改Edit控件的文本
通过Windows API可以方便地实现. 3步走: HWND hWnd = ::FindWindow(NULL,"showPicture"); HWND hEdit = ::Ge ...
- 使用Rich Edit控件
VC中在对话框上使用Rich Edit控件前一定要用AfxInitRichEdit()初始化RichEd... 1.设置edit只读属性 方法一: m_edit1.Se ...
- MFC RichEdit控件使用方法大全
RichEdit简介 RichEdit的意思是"富文本编辑控件",在Edit的基础上添加了很多功能,如对不同字体.字号.文本颜色.背景色.插入Ole对象的支持,Windows系统的 ...
- C++ 一个程序获取另一个程序Edit控件的内容
转载地址:https://www.cnblogs.com/lujin49/p/4796502.html //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HW ...
最新文章
- vector容器中erase(删除)的使用
- 如何把Office365的更新从半年通道改成月度通道
- CodeForces - 1313B Different Rules(数学+思维)
- 【通俗易懂】理解Python中的if __name__ == ‘__main__‘
- LeetCode LCS 02. 完成一半题目(计数+排序)
- 深度理解java jvm,深度理解JVM
- WPF TextBox只能输入数字
- (4)verilog语言编写计数器
- 和与余数的和同余理解_余数与同余解析
- 【原创】PDA 实现DataGrid可编辑
- 二叉树的前中后序遍历的三种实现(java)以及一些小习题
- 创维广电服务器无线,创维电视与电脑无线投屏条件
- React 组件的三种写法总结
- docker-compose build、gradlew build、docker-compose up的个人理解
- Sa-token 之 SaManager
- 微博登录接入出现错误码21322(重定向地址不匹配),其他解决方法
- linux搭建ftps(vsftpd),java代码测试上传下载
- 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎
- Win10出现0x8000000b错误如何解决?
- Linux-Day3笔记