次の方法で共有


アプリケーションでのプロパティ シートの使用

アプリケーションでプロパティ シートを使用するには、次の手順を実行します。

  1. プロパティ ページごとにダイアログ テンプレート リソースを作成します。 ユーザーがページ間を切り替える可能性があります。そのため、各ページのレイアウトをできる限り一貫性のあるものにします。

    すべてのページのダイアログ テンプレートを同じサイズにする必要はありません。 フレームワークでは、最大のページのサイズを使用して、プロパティ ページのプロパティ シートに割り当てる領域を決定します。

    プロパティ ページのダイアログ テンプレート リソースを作成する際は、[Dialog Properties]\(ダイアログのプロパティ\) プロパティ シートで次のスタイルを指定する必要があります。

    • [全般] ページの [タイトル] 編集ボックスを、このページのタブに表示するテキストに設定します。

    • [スタイル] ページの [スタイル] リスト ボックスを [子] に設定します。

    • [スタイル] ページの [Border]\(境界線\) リスト ボックスを [Thin]\(細\) に設定します。

    • [スタイル] ページの [タイトル バー] チェック ボックスがオンになっていることを確認します。

    • [その他のスタイル] ページの [無効] チェック ボックスがオンになっていることを確認します。

  2. 各プロパティ ページ ダイアログ テンプレートに対応する CPropertyPage 派生クラスを作成します。 「クラスを追加する」を参照してください。 基本クラスとして CPropertyPage を選択します。

  3. このプロパティ ページの値を保持するメンバー変数を作成します。 プロパティ ページは専用のダイアログ ボックスなので、メンバー変数をプロパティ ページに追加するプロセスは、メンバー変数をダイアログ ボックスに追加するプロセスとまったく同じです。 詳細については、ダイアログ コントロールのメンバー変数の定義に関するページを参照してください。

  4. ソース コードで CPropertySheet オブジェクトを構築します。 通常は、プロパティ シートを表示するコマンドのハンドラーに CPropertySheet オブジェクトを構築します。 このオブジェクトは、プロパティ シート全体を表します。 DoModal 関数を使用してモーダル プロパティ シートを作成すると、フレームワークには既定で [OK]、[Cancel]\(キャンセル\)、[適用] の 3 つのコマンド ボタンが表示されます。 Create 関数を使用して作成したモードレス プロパティ シートの場合は、フレームワークにコマンド ボタンは作成されません。 他のコントロール (プレビュー ウィンドウなど) を追加したり、モードレス プロパティ シートを表示したりしない限り、CPropertySheet からクラスを派生させる必要はありません。 モードレス プロパティ シートを閉じるために使用できる既定のコントロールが含まれていないため、モードレス プロパティ シートにはこの手順が必要です。

  5. プロパティ シートに追加するページごとに、次の操作を行います。

    • このプロセスで前に作成した CPropertyPage 派生クラスごとに 1 つのオブジェクトを構築します。

    • ページごとに CPropertySheet::AddPage を呼び出します。

    通常、CPropertySheet を作成するオブジェクトによって、この手順で CPropertyPage オブジェクトも作成されます。 ただし、CPropertySheet 派生クラスを実装する場合は、CPropertySheet オブジェクトに CPropertyPage オブジェクトを埋め込み、CPropertySheet 派生クラス コンストラクターからページごとに AddPage を呼び出すことができます。 AddPage によってプロパティ シートのページのリストに CPropertyPage オブジェクトが追加されますが、実際にそのページのウィンドウが作成されるわけではありません。 したがって、AddPage を呼び出すために、プロパティ シート ウィンドウが作成されるまで待機する必要はありません。AddPage はプロパティ シートのコンストラクターから呼び出すことができます。

    既定では、プロパティ シートのタブ数がプロパティ シートの 1 行に収まらない場合、タブは複数の行に積み重なって表示されます。 積み重ねを無効にするには、パラメーターを FALSE に設定して CPropertySheet::EnableStackedTabs を呼び出します。 プロパティ シートを作成するときに、EnableStackedTabs を呼び出す必要があります。

  6. プロパティ シートを表示するには、CPropertySheet::DoModal または Create を呼び出します。 モーダル ダイアログ ボックスとしてプロパティ シートを作成するには、DoModal を呼び出します。 モードレス ダイアログ ボックスとしてプロパティ シートを作成するには、Create を呼び出します。

  7. プロパティ ページとプロパティ シートの所有者の間でデータを交換します。 これについては、「データの交換」を参照してください。

プロパティ シートの使用方法の例については、MFC の一般的なサンプルである PROPDLG に関するページを参照してください。

関連項目

プロパティ シート