vc60中有多个复选框,但是其中一个选中后不能取消选中,且...

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:22:34
vc60中有多个复选框,但是其中一个选中后不能取消选中,且它选中后其它的复选框同时被选中,没有明显代码,请问是怎么实现的?
IDC_CHECK_
都是复选框,没有选中{组(G)}的,也没有任何代码迹象,请大家多费费心,谢谢了先

应该不会没有任何代码迹象,代码肯定是有的。

我觉得可以这样实现,例如有IDC_CHECK1、IDC_CHECK2...IDC_CHECK5 五个复选框。
当选中IDC_CHECK1后,不能取消选中,并且其他复选框同时选中。

每个复选框都关联同一个BOOL变量:
DDX_Check(pDX, IDC_CHECK1, m_bCheck);
DDX_Check(pDX, IDC_CHECK2, m_bCheck);
DDX_Check(pDX, IDC_CHECK3, m_bCheck);
DDX_Check(pDX, IDC_CHECK4, m_bCheck);
DDX_Check(pDX, IDC_CHECK5, m_bCheck);
IDC_CHECK1再关联一个CButton型control变量:
DDX_Control(pDX, IDC_CHECK1, m_ctrlCheck1);

然后在IDC_CHECK1的单击事件中添加代码:
void CT8Dlg::OnCheck1()
{
if(!m_bCheck)
m_bCheck = m_ctrlCheck1.GetCheck();
UpdateData(FALSE);
}

这样就可以实现你说的功能了。

如果真的看不见其他代码的话,那应该是复选框控件使用了其他第三方的类,实现代码在类中。

我给你2个方法!我就是这样解决的!
1:
响应鼠标单击的消息,然后再这个消息函数中添加个static的变量!初始化为0
然后每次响应的时候那个变量都自增
这样写
static int i=0;
if(i%2==0)
{
//选中你要做什么...
}
else
{
//没选中要做什么...
}
i++;
第二种:
使用CButton的IsChecked确认是否是选择状态!
是就把它