如何更改三态MFC复选框控件的顺序?
现在,当我单击它时,它的状态顺序如下:BST_INDETERMINATE>BST_UNCHECKED>BST_CHECKED>cycle
但我需要以下内容:BST_INDETERMINATE>BST_CHECKED>BST_UNCHECKED>循环
感谢Adrian Mole的评论提示!
我忘了从BS_AUTO3STATE更改为bs_3state。
工作解决方案:
void CTestDialog::OnCheckBoxClicked()
{
int state = ((CButton*)GetDlgItem(IDC_CHECKBOX))->GetCheck();
if (state == BST_INDETERMINATE)
((CButton*)GetDlgItem(IDC_CHECKBOX))->SetCheck(BST_CHECKED);
else if (state == BST_CHECKED)
((CButton*)GetDlgItem(IDC_CHECKBOX))->SetCheck(BST_UNCHECKED);
else
((CButton*)GetDlgItem(IDC_CHECKBOX))->SetCheck(BST_INDETERMINATE);
}