根据复选框值更改UI状态

时间:2012-06-17 08:06:43

标签: mfc

我有以下情况。

有一个带有复选框和文本框的对话框。如果文本框已启用或显示为灰色,则复选框的单击将绑定到切换的功能。它工作正常但我还需要在创建和显示对话框之前预设一些值。如果连接到复选框的变量设置为ture,我想禁用文本框。

我尝试以不同的方式实现这一点,但这一切都归结为这样一个事实:在调用DoModal之前我无法更改对话框的GUI(当我尝试时我得到断言失败)。

这可能是一个常见问题,但我可以在线找到解决方案。我完全偏离了轨道吗?

MyDialog d(this);
d.bFlag = TRUE; // Because it is true, I want the text-box to be disabled
// I could call a function of d here that would set the state of the text-box correctly,
// but an assertion falure would happen.
if (d.DoModal() == IDOK){
...
}

1 个答案:

答案 0 :(得分:4)

您需要在对话框类MyDialog中覆盖OnInitDialog函数,并使用代码检查复选框值并启用/禁用文本框。