|
下面几种方式设置复选框选中/未选中(假设控件ID = IDC_CHECK1): 方式1:直接调用 CheckDlgButton - // 选中
- CheckDlgButton(IDC_CHECK1, BST_CHECKED);
- // 取消
- CheckDlgButton(IDC_CHECK1, BST_UNCHECKED);
- // 三态时:中间态
- CheckDlgButton(IDC_CHECK1, BST_INDETERMINATE);
复制代码方式2:通过控件变量 CButton - CButton m_chk1; // 成员变量
- // OnInitDialog 中:
- m_chk1.SubclassDlgItem(IDC_CHECK1, this);
- m_chk1.SetCheck(BST_CHECKED); // 选中
- // m_chk1.SetCheck(BST_UNCHECKED); // 取消
复制代码方式3:DDX 变量(在对话框类中添加 BOOL m_bCheck1; 并在 DoDataExchange 中 DDX_Check) - m_bCheck1 = TRUE; // 1=选中 0=未选
- UpdateData(FALSE); // 将变量值写回控件
复制代码判断当前状态 - BOOL isChecked = (IsDlgButtonChecked(IDC_CHECK1) == BST_CHECKED);
- // 或
- BOOL isChecked2 = (m_chk1.GetCheck() == BST_CHECKED);
复制代码要点: - 设置:CheckDlgButton / SetCheck / DDX + UpdateData(FALSE)。
- 读取:IsDlgButtonChecked / GetCheck。
- 三态复选框需要在资源里启用 Tri-State,再使用 BST_INDETERMINATE。
|