アプリケーションでのプロパティ シートの使用
アプリケーションでプロパティ シートを使用するには、次の手順を実行します。
プロパティ ページごとにダイアログ テンプレート リソースを作成します。 ユーザーがページ間を切り替える可能性があります。そのため、各ページのレイアウトをできる限り一貫性のあるものにします。
すべてのページのダイアログ テンプレートを同じサイズにする必要はありません。 フレームワークでは、最大のページのサイズを使用して、プロパティ ページのプロパティ シートに割り当てる領域を決定します。
プロパティ ページのダイアログ テンプレート リソースを作成する際は、[Dialog Properties]\(ダイアログのプロパティ\) プロパティ シートで次のスタイルを指定する必要があります。
[全般] ページの [タイトル] 編集ボックスを、このページのタブに表示するテキストに設定します。
[スタイル] ページの [スタイル] リスト ボックスを [子] に設定します。
[スタイル] ページの [Border]\(境界線\) リスト ボックスを [Thin]\(細\) に設定します。
[スタイル] ページの [タイトル バー] チェック ボックスがオンになっていることを確認します。
[その他のスタイル] ページの [無効] チェック ボックスがオンになっていることを確認します。
各プロパティ ページ ダイアログ テンプレートに対応する CPropertyPage 派生クラスを作成します。 「クラスを追加する」を参照してください。 基本クラスとして
CPropertyPage
を選択します。このプロパティ ページの値を保持するメンバー変数を作成します。 プロパティ ページは専用のダイアログ ボックスなので、メンバー変数をプロパティ ページに追加するプロセスは、メンバー変数をダイアログ ボックスに追加するプロセスとまったく同じです。 詳細については、ダイアログ コントロールのメンバー変数の定義に関するページを参照してください。
ソース コードで CPropertySheet オブジェクトを構築します。 通常は、プロパティ シートを表示するコマンドのハンドラーに
CPropertySheet
オブジェクトを構築します。 このオブジェクトは、プロパティ シート全体を表します。 DoModal 関数を使用してモーダル プロパティ シートを作成すると、フレームワークには既定で [OK]、[Cancel]\(キャンセル\)、[適用] の 3 つのコマンド ボタンが表示されます。 Create 関数を使用して作成したモードレス プロパティ シートの場合は、フレームワークにコマンド ボタンは作成されません。 他のコントロール (プレビュー ウィンドウなど) を追加したり、モードレス プロパティ シートを表示したりしない限り、CPropertySheet
からクラスを派生させる必要はありません。 モードレス プロパティ シートを閉じるために使用できる既定のコントロールが含まれていないため、モードレス プロパティ シートにはこの手順が必要です。プロパティ シートに追加するページごとに、次の操作を行います。
このプロセスで前に作成した
CPropertyPage
派生クラスごとに 1 つのオブジェクトを構築します。ページごとに CPropertySheet::AddPage を呼び出します。
通常、
CPropertySheet
を作成するオブジェクトによって、この手順でCPropertyPage
オブジェクトも作成されます。 ただし、CPropertySheet
派生クラスを実装する場合は、CPropertySheet
オブジェクトにCPropertyPage
オブジェクトを埋め込み、CPropertySheet
派生クラス コンストラクターからページごとにAddPage
を呼び出すことができます。AddPage
によってプロパティ シートのページのリストにCPropertyPage
オブジェクトが追加されますが、実際にそのページのウィンドウが作成されるわけではありません。 したがって、AddPage
を呼び出すために、プロパティ シート ウィンドウが作成されるまで待機する必要はありません。AddPage
はプロパティ シートのコンストラクターから呼び出すことができます。既定では、プロパティ シートのタブ数がプロパティ シートの 1 行に収まらない場合、タブは複数の行に積み重なって表示されます。 積み重ねを無効にするには、パラメーターを FALSE に設定して CPropertySheet::EnableStackedTabs を呼び出します。 プロパティ シートを作成するときに、
EnableStackedTabs
を呼び出す必要があります。プロパティ シートを表示するには、CPropertySheet::DoModal または Create を呼び出します。 モーダル ダイアログ ボックスとしてプロパティ シートを作成するには、
DoModal
を呼び出します。 モードレス ダイアログ ボックスとしてプロパティ シートを作成するには、Create を呼び出します。プロパティ ページとプロパティ シートの所有者の間でデータを交換します。 これについては、「データの交換」を参照してください。
プロパティ シートの使用方法の例については、MFC の一般的なサンプルである PROPDLG に関するページを参照してください。