CPropertySheet
/CPropertyPage
から派生したBCGSoftクラスを使用して、CPropertySheet
ベースのモーダルダイアログをMFCで作成しました。ユーザーがCPropertyPage
のいずれかで特定の操作を実行すると、異なるCPropertyPage
でコントロールを有効/無効にしたいと思います。CPropertySheetでユーザーがクリックする前にCPropertyPageが作成されていることを確認する方法?
これは、ユーザーがすでにタブをクリックして2番目のCPropertyPage
をインスタンス化したと仮定すると、うまくいきます。ただし、MFCは、ユーザーによってアクティブにされるまで、2番目のCPropertyPage
の作成を遅延します。このシナリオでは、2番目のCPropertyPage
内のコントロールは存在せず、MFCはエラーをスローします。
これを解決するには、CPropertySheet
OnInitDialog()
内の必要な機能を呼び出すことで、すべてCPropertyPage
が存在することを確認します。誰かがこれを行う方法を説明してもらえますか?
私の場合、ビジネスロジックの要件ではなく、別のページでチェックボックスをチェックするのは純粋にユーザーインターフェイスの便利さです。データが変更または設定されていません。 2番目のページがアクティブになったときにデータレイヤーに新しいプロパティを追加できます(データレイヤーは既に存在し、2番目のページがロード/セーブされると読み込まれます)。データ層。このシナリオでは、2ページ目のチェックボックスをオンにしてチェックします。 –