次の方法で共有


モードレス プロパティ シートの作成

通常、作成するプロパティ シートはモーダルです。 モーダル プロパティ シートを使用すると、ユーザーはアプリケーションのほかの部分を使用する前に、プロパティ シートを閉じる必要があります。 ここでは、プロパティ シートを作成するためのモードレス プロパティ シートを作成するために使用できるメソッドについて説明します。アプリケーションの他の部分を使用します。

モーダル ダイアログ ボックスとしてではなく、モードレス ダイアログ ボックスとしてプロパティ シートを表示するには、DoModalの代わりに CPropertySheet::Create を呼び出します。 また、モードレス プロパティ シートをサポートする追加のタスクを実装しなければなりません。

追加のタスクの 1 つがプロパティ シートが開くときに変更する外部オブジェクトとプロパティ シートとのデータ交換です。 これは、通常、標準モードレス ダイアログ ボックスのと同じタスクです。 このタスクの一部は、プロパティ設定を適用する外部オブジェクトとモードレス プロパティ シートの間の通信チャネルを実装しています。 この実装は、モードレス プロパティ シートの CPropertySheet からクラスを派生すればはるかに簡単です。 ここでは、そうしたとします。

モードレス プロパティ シートと外部オブジェクト (ビューの現在の選択項目の間で通信するための 1 種類のメソッドは、たとえば) プロパティ シートの外部オブジェクトへのポインターを定義することです。 CPropertySheet- 1 個の外部オブジェクトから別の要素へのポインターをいつでもフォーカス変更変更した派生クラスの関数 (SetMyExternalObjectのようなものと呼ばれる) を定義します。 SetMyExternalObject 関数は、最近選択した外部オブジェクトを反映するプロパティ ページの設定をリセットする必要があります。 これを行うには、SetMyExternalObject 関数は CPropertySheet クラスに属する CPropertyPage オブジェクトにアクセスできる必要があります。

プロパティ シート内のプロパティ ページへのアクセスを提供する最も簡単な方法は、-派生オブジェクトを CPropertySheetCPropertyPage オブジェクト埋め込むことです。 CPropertyPage を埋め込みます CPropertySheetでオブジェクトを-派生オブジェクトは、プロパティ シートの所有者が CPropertyPage オブジェクトを作成し、プロパティ シートに CPropertySheet::AddPageで渡すモーダル ダイアログ ボックスの一般的なデザインとは異なります。

モードレス プロパティ シートの設定は、外部オブジェクトに適用するかを決定するための各種のユーザー インターフェイスの方法があります。 1 種類の代わりに、たびにユーザーが変更された値は、現在のプロパティ ページの設定を適用することです。 別の方法としては、ユーザーが外部オブジェクトにコミットされる前にプロパティ ページを収集できるようにする適用ボタンを提供することです。 適用ボタンを処理する方法については、適用ボタンの処理記事を参照してください。

参照

関連項目

データの交換

概念

プロパティ シート (MFC)

ダイアログ ボックスの有効期間