0

我有以下情况。

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

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

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

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){
...
}
4

1 回答 1

4

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

于 2012-06-18T05:27:35.200 回答