我已经在很多地方检查了答案,他们向我推荐了这样做的方法,但是它似乎对我不起作用,因此,我们将不胜感激。

我有一个复选框,我希望它在选中时启用一个编辑框,而在未选中时禁用它。

以下代码是我创建的:

void CMFCApplication1Dlg::OnBnClickedCheck1()
{
    UINT nCheck = CheckBox.GetState();
    if (nCheck == BST_CHECKED)
    {
        EditBox.EnableWindow(TRUE);
    }
    else if (nCheck == BST_UNCHECKED)
    {
        EditBox.EnableWindow(FALSE);
    }
    else
    {
        EditBox.EnableWindow(TRUE);
    }

当我在调试中运行nCheck时,它是520,因此直接转到else选项。

非常感谢

最佳答案

CButton的GetState获取对话框对象的当前状态。您要使用的是CButton的GetCheck。

或者,您可以as indicated on MSDN对返回值进行按位屏蔽,以获取当前的Check状态-但是GetCheck就在那里,因此您也可以使用它。

08-19 06:43