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 に答える