【发布时间】:2016-08-23 17:03:47
【问题描述】:
我有一个复选框和一个编辑控件。我想在“未选中”复选框时禁用编辑控件,并在“选中复选框”时启用编辑控件。
当我选中/取消选中复选框时,会调用 OnBnClickedCheck1。 m_CHECK1_VARIABLE 告诉我复选框是选中还是未选中。 If-else 部分执行正确,但 m_TEXT1_CONTROL.EnableWindow(FALSE/TRUE) 似乎不起作用。
下面是代码。
void CPreparationDlg::OnBnClickedCheck1()
{
UpdateData(TRUE);
if (m_CHECK1_VARIABLE)
{
m_TEXT1_CONTROL.EnableWindow(TRUE);
}
else if (m_CHECK1_VARIABLE)
{
m_TEXT1_CONTROL.EnableWindow(FALSE);
}
}
有两种情况。
- 当弹出对话框时默认禁用编辑框。
如果默认启用编辑框(我将对话框属性中的“禁用”行为设置为“假”),则编辑框在整个操作过程中保持启用状态。 (勾选和取消勾选复选框的操作)
- 当弹出对话框时默认启用编辑框。
当我默认禁用编辑框时(我将对话框属性中的“禁用”行为设置为“真”),编辑框在复选框上的“第一个”“检查”时启用,但在整个过程中保持启用状态其余的操作。 (勾选和取消勾选复选框的操作)。
我在这里缺少什么?
【问题讨论】:
-
使用调试器单步调试代码应该会有所帮助。
标签: visual-c++ mfc modal-dialog