merlinzjl

导航

MFC 多窗口通信时,使用RadioButton和Button时冲突问题

最近项目需要我们实现在两个窗口间进行通信,其中有个小功能如图所示:

当我点击GDIProgram中的Button1时,会更新Dialog的Radio1和Radio2的状态。

Dialog中的Radio1和Radio2是一组单选按钮,Dialog中的Button1和Button2的单击事件都不会去更新Radio1和Radio2的状态。

当我执行以下操作步骤时

1)鼠标点击Radio1

2)点击GDIProgram中的Button1,此时会更新Dialog中单选按钮的状态,Radio2被选中

3)点击Dialog中的Button1时,Dialog中的单选按钮又被更新成了Radio1。(莫名其妙!!!!)

这种点击了一个Button却触发了Radio和Button的两个单击事件奇怪现象,百思不得其解。

调查了两天,还是没有找到原因。

但是我最终通过重绘Button解决了这个问题。

具体方法:

     1)在CButton的OnLButtonUp函数中发送自定义消息MY_MSG,并将当前控件ID发送出来。

     2)在父窗口中响应消息MY_MSG,根据不同的ID使用不同响应函数,替代原有的ON_BN_CLICKED消息响应。

posted on 2018-01-24 21:14  merlinzjl  阅读(256)  评论(0编辑  收藏  举报