MFC里CHECKBOX用法

MFC里CHECKBOX用法 


勾选时...做某种算法

不勾选时 做另一种算法
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 == 0时表示该复选框没有被选中;
           当state == 1时表示该复选框被选中设置复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);
           pBtnNONE->SetCheck(1);
           SetCheck(1)表示设置复选框为“选中”状态;
           SetCheck(0)表示设置复选框为“未选中”状态;

在Microsoft Foundation Classes (MFC) 中,你可以通过以下几个步骤来修改Windows复选框(CheckBox)的字体颜色: 1. **获取控件句柄**: 首先,你需要获取你要操作的`CButton`或`CEdit`子类(如`CButton`对于非文本复选框,`CEdit`用于带文本的复选框)的句柄。这通常是在某个窗口类的成员函数中完成的。 ```cpp CButton* pCheckbox = reinterpret_cast<CButton*>(FindWindowEx(NULL, NULL, WC_Button, _T("YourCheckboxName"))); // 假设名字为"YourCheckboxName" ``` 2. **检查是否支持文本更改**: `CButton`类型的复选框默认不显示文本,如果你需要更改文本,需将其转换为`CEdit`类型。 ```cpp if (pCheckbox->GetStyle() & BS_DEFPUSHBUTTON) { CEdit* pEditText = static_cast<CEdit*>(pCheckbox); // 现在pEditText指向了包含文本的编辑控件 } else { // 如果不是文本复选框,则无法直接改变字体颜色,可以考虑使用绘图来改变外观 } ``` 3. **设置字体颜色**: 对于`CEdit`,你可以使用`SetTextColor`方法来设置文字颜色,例如: ```cpp pEditText->SetTextColor(RGB(0, 0, 255)); // 设置蓝色 ``` 这RGB(0, 0, 255)代表红色、绿色、蓝色分量,可以根据需要替换其他颜色值。 4. **保存更改**: 调整完后,记得保存控件的更改。 如果你想要对所有同类型的复选框应用此设置,可以在消息处理循环中遍历所有实例并执行相同的步骤。注意在实际项目中,应确保在适当的时间(比如在控件创建后或者在UI初始化完成后)进行这种修改,以避免可能导致的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值