MFC中控件消息的处理

zzyoucan 2012-10-03 10:31:59
我创建了四个checkbox控件的按钮,但这四个按钮只能选择其中的一个,当有一个按钮被选中时再选择另外一个时,弹出对话框说选择冲突,我写的代码:
void CShangXianDlg::OnBnClickedCheck1()
{
// TODO: 在此添加控件通知处理程序代码
if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK3 ) ||
BST_CHECKED == IsDlgButtonChecked( IDC_CHECK4 ))
{
MessageBox("此选择与前面的选择有悖!", "sacdil_pc", MB_OK) ;
}

}
但处理之后,按钮还是被选中了,我想只是弹出对话框,而按钮没有被选中,那怎么加入代码呢?求解答。
...全文
431 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzyoucan 2012-10-03
  • 打赏
  • 举报
回复
具体的就是只有一个按钮可以被选中,只要有一个被选中过了,其他的就不能选了,除非把当前的取消掉才行。
zzyoucan 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你控件绑定是不是出了问题?都绑定一个变量了?
[/Quote]
我是在不同checkbox控件单击消息中处理的,这只是第一个checkbox控件处理的情况。
zzyoucan 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

最简单的办法就是改回不选中咯
C/C++ code

if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK3 ) ||
BST_CHECKED == IsDlgButtonChecked( IDC_CHECK4 ))
{
CheckDlgButton(IDC_CHECK1, BST_UNCHECKED);
MessageBox("此选择与……
[/Quote]
其他的还是可以被选中。
傻X 2012-10-03
  • 打赏
  • 举报
回复
你控件绑定是不是出了问题?都绑定一个变量了?
gfm688 2012-10-03
  • 打赏
  • 举报
回复
最简单的办法就是改回不选中咯

if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK3 ) ||
BST_CHECKED == IsDlgButtonChecked( IDC_CHECK4 ))
{
CheckDlgButton(IDC_CHECK1, BST_UNCHECKED);
MessageBox("此选择与前面的选择有悖!", "sacdil_pc", MB_OK) ;
}
原需求: 1.央空调是冷暖两用,但一次只能使用一种温控装置。当设置为供暖时,供暖温度控制在25°C~30°C之间,当设置为制冷时,制冷温度控制在18°C~25°C之间。 2.央空调具备开关按钮,只可人工开启和关闭,央空调开启后处于待机状态。当关闭后,不响应来自房间的任何温控请求。当有来自从控机的温控要求时,央空调开始工作。当所有房间都没有温控要求时,央空调的状态回到待机状态。 3.房间内有独立的从控空调机,但没有冷暖控制设备。从控机具有一个传感器,实时监测房间的温度,并与从控机的目标设置温度进行对比,决定是否需要制冷或制热,并向央空调机发出请求。如果从控机发出的请求和央空调设置的冷暖控制状态发生矛盾时,以央空调机的状态优先,即央空调机不予响应。 4.从控机只能人工方式开闭,并通过控制面板设置目标温度,目标温度有上下限制。所有房间的初始目标温度由央空调机设置,每个房间的空调机开启时要读取央空调机预置的房间温度。温度升降范围应该在目标温度的上下1 °C。房间不考虑大小和管道的分布及大小问题,在达到目标温度后,房间的温度每分钟上下变化0.1°C。 需求变更: 要求控机能够监控四个房间的实时温度及状态,并要求实时刷新的频率能够进行配置; 要求分控机能够发送高、、低风速的请求,各验收小组自定义高、、低风情况下的温度变化值; 增加主机的统计功能,可以根据需要给出日报表、月报表;报表内容待定。报表内容如下:房间号、开关机的次数、温控请求起止时间、温控请求的起止温度及风量大小; 主机同时只能处理三台分机的请求,为此主机要有负载均衡的能力,能够保证所有房间的请求都能进行温度调整; 增加计费功能,也就是可根据主机对分机的请求时长及高低风速的供风量进行费用计算。假设,每分钟速风的能量消耗为一个标准功率消耗单位,低速风的每分钟功率消耗为0.8标准功率,高速风的每分钟功率消耗为1.3标准功率;并假设,每一个标准功率消耗的计费标准是10元。(可选)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧