2012-06-17 59 views
0

我有以下情况。根据复选框值更改UI状态

有一个对话框,带有复选框和文本框。复选框的点击被绑定到一个函数,该函数在文本框被启用或变灰时切换。它工作正常,但我还需要在创建和显示对话框之前预先设置一些值。如果连接到该复选框的变量设置为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){ 
... 
} 

回答

4

你需要重写OnInitDialog函数在对话框类MyDialog并有代码来检查复选框值和启用/禁用文本框。