オプション ダイアログ ボックスで使用している CMFCPropertyGridCtrl があります。オプション ダイアログ クラスに InitPropertyGrid() というメソッドがあります。このメソッドは、すべてのプロパティをクリアし、(プロパティ値のカスタム設定オブジェクトを使用して) CMFCPropertyGrid オブジェクトを設定し、グリッドに追加します。
初めてダイアログ ボックスを開くと、すべてのプロパティが正しく表示されます。ただし、ダイアログ ボックスを閉じて再度開くと、最後のプロパティが画面に表示されません。他のすべてのプロパティは通常どおりに描画されます。
初めて:
以降のすべての時間:
ご覧のとおり、プラス/マイナス アイコンはどちらの場合もマイナスを示しており、セクションが展開されていることを示しています。最後の項目が表示されていない場合、+/- アイコンを 1 回クリックして縮小し、1 回拡大すると、最後の項目が正しく表示されます。
ダイアログ ボックスを閉じるときに、ダイアログ ボックスを破棄せずに再表示することに注意してください。ただし、ダイアログで ShowWindow を呼び出す直前に、InitPropertyGrid() (UpdateToCurrentSettings によって呼び出される) メソッドを呼び出します。
if(optionsDialog_ == NULL)
{
optionsDialog_ = new OptionsDialog(settings_, this);
optionsDialog_->Create(OptionsDialog::IDD, this);
}
optionsDialog_->UpdateToCurrentSettings();
optionsDialog_->ShowWindow(SW_SHOW);