https://blog.csdn.net/tianxia_rwx/article/details/53057729
MFC中复选框Checkbox控件,查找到有四种方法可对其进行操作。
1,利用CButton成员函数GetCheck和SetCheck。
2,利用CWnd成员函数IsDlgButtonChecked。
3,把CheckBox复选框控件与Value类别BOOL型变量相关联。
4,把CheckBox复选框控件与Control类别CButton类型变量相关联。
下面进行详细介绍:
int state =((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();
返回值说明:
if state == 0,按钮处于未选中状态。
if state == 1,按钮处于选中状态。
if state == 2,按钮状态不确定(仅当按钮风格为BS_3STATE或BS_AUTO3STATE时)。如果按钮是其它风格,则返回0
可使用下方函数进行状态设置:
((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(int nCheck);
参数 nCheck 指定按钮控件的选中状态。可能的取值如下:
if nCheck == 0,把按钮设为未选中状态。
if nCheck == 1,把按钮设为选中状态 。
if nCheck == 2,把按钮设为不确定状态。仅当按钮的风格是BS_3STATE或BS_AUTO3STATE时有效。
CButton的基类是CWnd,那么就可以用IsDlgButtonChecked来获取和设置Check Box的状态。另外MSDN上说明IsDlgButtonChecked还可以用于单选框Radio Button。
UINT IsDlgButtonChecked( int nIDButton ) const;
nIDButton为控件ID
函数功能:
该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
返回值:
使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED:表示按钮被选中。
BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。
BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。
if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )
{
//IDC_CHECK1是CheckBox控件。
//Check Box被选中执行相关动作
}
为复选框CheckBox控件添加一个控件类型的BOOL值变量如:BOOL m_CheckBox1;
void MyTestDlg::DoDataExchange (CDataExchange *pDX)
{
//此代码利用类向导可以自动生成
MyTestDlg::DoDataExchange (pDX) ;
DDX_Check(pDX, IDC_CHECK1, m_CheckBox1);
}
//下方是代码片段
//从控件获得数据,获得输入数据后可以进行状态判断
UpdateData(TRUE);
BOOL state = m_CheckBox1;
//向控件更新数据,设置控件的状态
m_CheckBox1 = TRUE;
UpdateData(FALSE);
为复选框CheckBox控件添加一个类别为Control,变量类型为CButton的变量:m_CheckBox1;
void MyTestDlg::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CHECK1, m_CheckBox1);
}
//下方是代码片段
//从控件获得数据,获得输入数据后可以进行状态判断
UpdateData(TRUE);
BOOL state = m_CheckBox1.GetCheck();
//向控件更新数据,设置控件的状态
m_CheckBox1.SetCheck(int nCheck);
UpdateData(FALSE);
这个其实和第一种强制转换成(CButton *)一样的。
友情链接:
http://blog.csdn.net/dytdyt2010/article/details/43064031
http://www.creocn.com/mfc-check-box-using-exp.html
http://blog.sina.com.cn/s/blog_817a5eb601015xtr.html