我已经检查了很多地方的答案,他们推荐我这样做的方式,但它似乎对我不起作用,所以任何帮助将不胜感激。
我有一个复选框,我希望它在选中时启用编辑框,在未选中时禁用它。
以下代码是我创建的:
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 选项。
非常感谢
最佳答案
如果您阅读 manual page在 GetState
上,您会看到它返回一个位掩码。
这意味着你不能直接在比较中使用它,你必须像掩码一样检查它:
if ((nCheck & BST_CHECKED) != 0)
{
// Button is checked
}
else
{
// Button is unchecked
}
然而,GetCheck
可能更适合您的情况。
关于c++ - 如何查看是否选中了 MFC 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091887/