首页  >   经验  >   MFC基于对话框程序的键盘响应

MFC基于对话框程序的键盘响应

查看 codexia 的博客 2015-06-25 16:45:23 1247
对话框   键盘  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介本文提供完整的MFC的对话框解决回车键和ESC键与窗口关闭按钮以及自动生成的确定取消按钮的矛盾,学习后可以灵活的处理键盘响应和窗口关闭的问题。可以屏蔽回车键和ESC键关闭窗口,只使用关闭窗口按钮关闭窗口。
感谢 阿里云 对本站(本站由阿里云高性能服务器搭建)的赞助支持,本站推荐 →高性能云服务器2折起优惠由此进←↓
高性能云服务器2折起

    基于对话框的MFC程序,基类有OnOk和OnCancel两个函数,分别是响应确定和取消按钮退出程序的。如果生成程序时,将这两个按钮删掉而没有重载这两个函数的话,那么按回车键或ESC键就会退出程序,因为默认的确定按钮和回车键都是调用基类的OnOk函数来结束程序,ESC键和取消按钮是调用基类的OnCancel函数来结束程序的,其中窗口右上角以及系统菜单的关闭程序都是调用OnCancel按钮来结束程序的,如果重载了这两个函数而什么也不做的话,那不能够从程序中正常退出。
    解决办法就是在这两个函数的重载版本中实现关闭功能,同时还可以实现其他功能。但是对话框中的控件的键盘响应就不能简单的重载这两个函数了,因为这样的话还要进行鼠标单击的测试,就麻烦了点。这样最好的解决方法是:截获键盘消息,将主窗口的回车和ESC键屏蔽,然后截获控件的键盘消息进行响应,自然,基类的这两个函数就无法执行了,从而达到要求。
    解决方法1:重载虚函数OnOK()和OnCancel()
    如图所示:
   

关注左侧公众号
发送命令 rd eRnKa 复制
自动刷新 手动刷新
传送命令到手机
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。推荐使用“传送命令到手机”,一键复制命令并自动跳转到公众号。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您在公众号发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:MFC基于对话框程序的键盘响应
文章地址:http://www.cjjjs.com/article/6252015234516434
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:MFC基于对话框程序的键盘响应
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. 想实现一个获取所有键盘鼠标的程序,没有什么思路 查找全网同类文章
  2. 对话框添加Group-box控件后,如何隐藏Group-box Control边框或者改变颜色 查找全网同类文章
  3. MFC学习实践之简易音乐播放器(四)添加进度、音量跳转及列表文件情况备份还原 查找全网同类文章
  4. MFC对话框打印问题 查找全网同类文章
  5. MFC学习实践之简易音乐播放器(二)完整主界面控件说明及编写最简音乐播放器 查找全网同类文章
  6. 如何实现对话框自动消失 查找全网同类文章
  7. 多个对话框怎么调用一个串口控件? 查找全网同类文章
  8. 线程在对话框销毁之后访问对话框的句柄的问题 查找全网同类文章
  9. 从对话框模板创建子控件的初始化问题 查找全网同类文章
  10. windows低级键盘钩子的应用-捕捉键盘的操作 查找全网同类文章
分享到:
分享文章[MFC基于对话框程序的键盘响应]到QQ空间

相关阅读

猜您感兴趣