提问者:小点点

MFC三态复选框-如何改变状态的顺序?


如何更改三态MFC复选框控件的顺序?

现在,当我单击它时,它的状态顺序如下:BST_INDETERMINATE>BST_UNCHECKED>BST_CHECKED>cycle

但我需要以下内容:BST_INDETERMINATE>BST_CHECKED>BST_UNCHECKED>循环


共1个答案

匿名用户

感谢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);
}