VC中自绘radio控件,如果获得其选中状态属性

tee4509 2010-12-27 12:35:15
我要做一组`按钮,有按下和弹起2种状态,5个自成一组,时刻有一个是选中状态.按钮本身要显示图片.
我在radio的drawitem函数如何获取按钮是否选中呢,用this->getcheck()不行的.后来我用lpDrawItemStruct->itemAction,或者lpDrawItemStruct->itemState是可以. 但是我界面上还有其它radio.按别的radio这2个属性也会改变,即使给别的radio分了组,设了group属性,不知道如何是好,求解~~
...全文
423 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tee4509 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 phxian 的回复:]
重载BN_CLICKED消息,消息注册为
BEGIN_MESSAGE_MAP()
ON_CONTROL_RANGE(BN_CLICKED,IDC_RADIO_PARA1,IDC_RADIO_PARA6,OnParaChooseClicked)
END_MESSAGE_MAP()

注意:IDC_RADIO_PARA1到IDC_RADIO_PARA6的ID是连续的。

在消息处理函数中……
[/Quote]
这个方法我用过,但这个好像是用来减少程序代码,跟按钮重绘没有什么关系吧?
tee4509 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 tee4509 的回复:]
我要做一组`按钮,有按下和弹起2种状态,5个自成一组,时刻有一个是选中状态.按钮本身要显示图片.
我在radio的drawitem函数如何获取按钮是否选中呢,用this->getcheck()不行的.后来我用lpDrawItemStruct->itemAction,或者lpDrawItemStruct->itemState是可以. 但是我界面上还有其它radio.按别的radio这2个属性也会改……
[/Quote]
我试了做个变量来控制,还真发现问题了!就是drawitem函数发生在onclick之前,后来我采用PreTranslateMessage,问题依然,我想问问你,你是怎么做的呢?
phxian 2010-12-30
  • 打赏
  • 举报
回复
重载BN_CLICKED消息,消息注册为
BEGIN_MESSAGE_MAP()
ON_CONTROL_RANGE(BN_CLICKED,IDC_RADIO_PARA1,IDC_RADIO_PARA6,OnParaChooseClicked)
END_MESSAGE_MAP()

注意:IDC_RADIO_PARA1到IDC_RADIO_PARA6的ID是连续的。

在消息处理函数中采用:
void CMarkStep2::OnParaChooseClicked(unsigned int nCmd)
{
switch(nCmd)
{
case IDC_RADIO_PARA1:
//pMarkWizardDlg->mMarkData.type = 0; //添加响应的操作
break;
。。。。。。。

default:
break;
}
}
tee4509 2010-12-27
  • 打赏
  • 举报
回复
我也是这么想的,但毕竟有点浪费资源,所以开个帖子想想大家有无更好的办法~~
J_act 2010-12-27
  • 打赏
  • 举报
回复
自己在类里定义一个变量控制吧,
我就是这样做的

15,979

社区成员

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

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