[高分求助]Radio Button与对话框中的通信

yu549867265 2010-07-28 09:34:34
用MFC拖得界面如下:对话框A、B 。
在A对话框两个button,分别是下一步、取消
在B对话框上有如下控件:三个radio button分别代表安装、修复、卸载.
两个button,分别是下一步、取消。
在A对话框两个button,分别是下一步、取消。
点击A中下一步->B下一步-〉C/D/E(根据radiobutton 值去跳转)。
A对话框在B之前,操作如下:查询注册表的信息,判断当前安装的方式。如果当前为为安装状态,点击A上的下一步按钮,会出现B对话框,默认选中代表“安装”的radio button,禁用修复、卸载这两个radio button.
如果注册表信息反应当前已经安装过,此时点击A上的下一步按钮,会出现B对话框,默认选中代表“修复”的radio button,禁用“安装”的radio button。

我的做法是把三个radio button 设置成一组,用int型变量绑定,然后通过设置这个值来设置当前哪个为默认值。默认值处理部分放在B对话框的构造器中,我没能做到禁用radio button,使用的是((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(false);我把这部分代码放到B对话框的OnInitDialog()中。在B 对话框的下一步按钮的click 事件中,添加条件语句,如果满足当前对应的radio button 被选中,且注册表信息正确,则跳到相应的对话框去。

问题:1.请问禁用掉radio button如何实现?我目前是用的((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(false);这部分放在对话框OnInitDialog 中。这样功能实现了,可是相当难看,特别是当未安装时,上面只有一个radio button,太空荡了。
2.B对话框中的下一步按钮的click 事件,对radio button 的选择好像并不起作用,是不是我的思路有问题,肯请大侠们指点!

多谢!
...全文
171 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
siennaxu 2010-07-28
  • 打赏
  • 举报
回复
按钮灰掉用这个:((CButton*)GetDlgItem(IDC_RADIO2))->EnableWindow(FALSE);
Eleven 2010-07-28
  • 打赏
  • 举报
回复
:1.请问禁用掉radio button如何实现?我目前是用的((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(false);这部分放在对话框OnInitDialog 中。这样功能实现了,可是相当难看,特别是当未安装时,上面只有一个radio button,太空荡了。
------------------------------------------
GetDlgItem(IDC_RADIO2)->EnableWindow(FALSE);

2.B对话框中的下一步按钮的click 事件,对radio button 的选择好像并不起作用,是不是我的思路有问题,肯请大侠们指点!
--------------------------------------------------
CheckDlgButton(IDC_RADIO2, 1);
yu549867265 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 m_tornado 的回复:]
禁用如楼上所说,这样应该就没什么问题了吧,至于你说不好看,这个问题~可以去网上找些好看的用~
[/Quote]
在Radio Button 的属性中有个disable,我就是想实现这样的效果,不可用,但是它还是能够显示在对话框中,难道没的吗?
lovetow 2010-07-28
  • 打赏
  • 举报
回复
EnableWindow
m_tornado 2010-07-28
  • 打赏
  • 举报
回复
EnableWindow(false)禁用~
m_tornado 2010-07-28
  • 打赏
  • 举报
回复
禁用如楼上所说,这样应该就没什么问题了吧,至于你说不好看,这个问题~可以去网上找些好看的用~
yu549867265 2010-07-28
  • 打赏
  • 举报
回复
这个不是禁用,只是把这个控件给隐藏起来了,在B对话框中看不见而已,这样的话,B对话框很空荡,看着很怪异。我想把它禁用,是指灰掉,不可选。请问有没有这样的方法,我找了一下,,CButton是没有的~~
Simao 2010-07-28
  • 打赏
  • 举报
回复
请问禁用掉radio button如何实现?用((CButton *)GetDlgItem(IDC_RADIO2))->EnableWindow(false)就可以了
yu549867265 2010-07-28
  • 打赏
  • 举报
回复
如若我的问题没说清楚,请经管提,我会第一时间回复各位!
yu549867265 2010-07-28
  • 打赏
  • 举报
回复
感谢各位好心大侠的帮助,问题落地。特别感谢Eleven。第二个问题,要使用GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton)来实现,是我没说清楚,要获取当前哪个radio button被选中。
结贴了。
ls2141 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yu549867265 的回复:]
引用 4 楼 m_tornado 的回复:
禁用如楼上所说,这样应该就没什么问题了吧,至于你说不好看,这个问题~可以去网上找些好看的用~

在Radio Button 的属性中有个disable,我就是想实现这样的效果,不可用,但是它还是能够显示在对话框中,难道没的吗?
[/Quote]
EnableWindow 是让整个按钮灰掉不能点击, 他在对话框里面还显示啊

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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