Mfc 根据复选框值更改UI状态

Mfc 根据复选框值更改UI状态,mfc,Mfc,我有以下情况 有一个带有复选框和文本框的对话框。复选框的单击绑定到一个函数,该函数在文本框处于启用或灰显状态时进行切换。它工作正常,但在创建和显示对话框之前,我还需要为对话框预设一些值。如果连接到复选框的变量设置为true,我想禁用该文本框 我试着用不同的方法来实现这一点,但归根结底,这是因为在调用DoModal之前,我无法更改对话框的GUI(我尝试时遇到断言错误) 这可能是一个常见的问题,但我无法在网上找到解决方案。我完全偏离轨道了吗 MyDialog d(this); d.bFlag = T

我有以下情况

有一个带有复选框和文本框的对话框。复选框的单击绑定到一个函数,该函数在文本框处于启用或灰显状态时进行切换。它工作正常,但在创建和显示对话框之前,我还需要为对话框预设一些值。如果连接到复选框的变量设置为true,我想禁用该文本框

我试着用不同的方法来实现这一点,但归根结底,这是因为在调用
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){
...
}

您需要重写对话框类MyDialog中的OnInitDialog函数,并使用代码检查复选框值和启用/禁用文本框

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