MFC里CHECKBOX用法

来源:互联网 发布:java编程怎么实现界面 编辑:程序博客网 时间:2024/04/29 19:22

勾选时...做某种算法
不勾选时 做另一种算法

if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )
{
// 勾选
}
else
{
}

IDC_CHECK1是CheckBox控件。

 

函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。

  函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);

  参数:

  hDlg:指向包含按钮控制的对话框。

  nkDButtom:指定按钮控制的整型标识符。

  返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:

  BST_CHECKED:表示按钮被选中。

  BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。

  BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。

也可以为该控件添加一个控件类型的BOOL值变量如:BOOL m_delete;

void calcuArea::DoDataExchange (CDataExchange *pDX) {
 CAcUiDialog::DoDataExchange (pDX) ;
 DDX_Check(pDX, IDC_CHECK1, m_delete);
}

 

也可以对变量进行get或者set之类的操作来设置或者判断复选框的选择状态。

 

得到复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);

           int state = pBtnNONE->GetCheck();

           当state == 1时表示该复选框没有被选中;

           当state == 0时表示该复选框被选中设置复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);

           pBtnNONE->SetCheck(1);

           SetCheck(1)表示设置复选框为“选中”状态;

           SetCheck(0)表示设置复选框为“未选中”状态;