vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
来源:互联网 发布:摇滚音乐淘宝网 编辑:程序博客网 时间:2024/05/17 08:48
大家在使用MFc编程的时候,可能会遇到:点击添加的按钮无反应,或者执行不到相应的事件处理程序。以笔者的经验来看,出现这种问题多半是由于该按钮的底层属性值错误,或者该按钮的ID号与相应的ID值不对应造成的。下面笔者举个简单的例子,来说明这些问题。
1、 首先我们给按钮添加事件处理程序,这里按钮为“测试”,如图:
图1 鼠标右击按钮
图2 添加事件处理程序
图2在事件处理程序里面添加一个断点,待会儿点击该按钮后观察是否会触发该断点;如果触发该断点,那么说明“测试”按钮与该事件处理程序是对应的,否则不是对应的。下面运行该程序,程序界面如下图:
图3 程序运行结果
但是点击该按钮后,发现并没有触发断点,这说明该按钮并没有与事件处理程序对应起来。下面我们来找到问题所在,并且解决这个问题。
2、 首先调出该按钮的底层属性定义,以及调出该按钮的ID号定义,方法是通过查找整个解决方案查找该按钮的ID号出现的地方,比如在本列中查找的ID号为“ID_TEST”,会发现ID号出现的地方只有三个,有一个是按钮底层属性定义,有一个是ID号声明定义。分别如下图所示:
图4 在“整个解决方案”中查找“ID_TEST”
图5 “ID_TEST”出现在“测试”按钮的底层属性定义
图6 “ID_TEST”出现在其声明定义的地方
通过比较图5和图6我们发现,图5中按钮的底层属性值为32938,图6中ID_TEST的值为32938,虽然这两个值是相等的,但是通过对比图6的上下文我们还发现:还有几个其他的按钮ID值也为32938,。所以这就会造成一个ID值会对应多个ID号,对应了多个按钮,对应了多个按钮的事件处理程序。至于它到底对应了哪个按钮的事件处理程序,这里我们不做讨论。
找到了问题的所在,因此解决方法是:将按钮的底层属性值和按钮ID的值都改为同一个未使用的数值,然后清理解决方案、重新生成解决方案。比如这里可以都改为32939,如下图所示:
图7 将按钮底层属性值改为 32939
图8 将ID_TEST的值改为32939
图9 清理解决方案、重新生成解决方案后,点击按钮触发的断点
问题就这样解决啦,赶脚是不是很简单啊!要是有帮助到亲的话,可不要忘了给皮皮点个赞呢
- vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
- 部署按钮点击无反应
- IE6下链接a的onclick事件点击无反应的处理方法
- 相应TreeView的点击事件的处理
- myeclipse点击部署按钮无反应解决办法
- myeclipse点击部署按钮无反应解决办法
- MyEclispe点击add deploment 无反应的处理
- CSharp_exe执行文件点击运行无反应;
- Android ListView点击事件无反应
- 点击按钮选择文件用相应的程序打开
- UITableViewCell上的按钮点击事件处理
- UITableViewCell上的按钮点击事件处理
- UITableViewCell上的按钮点击事件处理
- DuiLib : 执行按钮事件, 模拟按钮的点击
- ios手机 按钮点击事件没反应(这个按钮是js生成的)
- listview 的item拿不到点击事件的处理方法
- 《android按钮点击事件的频繁点击问题处理》
- updatePanel 中GridView 点击按钮无反应解决方法
- OpenGL从1.0开始--二维观察
- ERP系统怎么实施?企业成功实施ERP系统离不开哪些步骤?
- 基于xxtea算法文件加密工具
- css优先级
- Highcharts做柱形图总结
- vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
- 监听器和国际化
- ubuntu 调中文显示
- 分布式系统监控平台-Overwatch架构设计(已开源)
- quartz详解2:quartz由浅入深
- Windows建立的shell脚本和Linux下面建立的shell脚本
- TF-IDF与余弦相似性的应用(二):找出相似文章
- ionic3+cordova 极光推送 记录
- linux Path配置