微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MFC Tri-state CheckBox — 如何改变状态的顺序?

如何解决MFC Tri-state CheckBox — 如何改变状态的顺序?

如何改变三态MFC CheckBox控件的顺序?

现在,当我点击它时,状态顺序如下: BST_INDETERMINATE > BST_UNCHECKED > BST_CHECKED > 周期

但我需要以下内容: 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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。