次の方法で共有


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

アプリケーションでプロパティ シートを使用する手順は、次のとおりです。

  1. 各プロパティ ページのダイアログ テンプレート リソースを作成します。 ユーザーがページを切り替えて使用することを考慮して、各ページはできる限り同じようにレイアウトします。

    すべてのダイアログ テンプレートのサイズを統一する必要はありません。 フレームワークでは、最大のページのサイズを基準として、プロパティ シート内のプロパティ ページの表示に必要な領域を決定します。

    プロパティ ページのダイアログ テンプレート リソースを作成するときには、[ダイアログ] の [プロパティ] で以下のスタイルを指定する必要があります。

    • [Caption] で、ページのタブに表示するテキストを設定します。

    • [Style] の一覧の [子] をクリックします。

    • [Border] の一覧の [細枠] をクリックします。

    • [Title Bar] を [True] にします。

    • [Disabled] を [True] にします。

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

  3. プロパティ ページの値を保持するメンバー変数を作成します。 プロパティ ページは、特殊用途向けの一種のダイアログ ボックスであるため、プロパティ ページにメンバー変数を追加する手順は、ダイアログ ボックスにメンバー変数を追加する場合と同じです。 詳細については、「ダイアログ コントロールのメンバー変数の定義」を参照してください。

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

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

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

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

    通常は、CPropertySheet オブジェクトを作成したオブジェクトによって CPropertyPage オブジェクトも作成されます。 ただし、CPropertySheet 派生クラスを実装した場合は、CPropertyPage オブジェクトを CPropertySheet オブジェクトに埋め込み、CPropertySheet の派生クラスのコンストラクターから各ページの AddPage を呼び出すことができます。 AddPage によって、プロパティ シートのページ リストに CPropertyPage オブジェクトが組み込まれますが、実際のウィンドウは作成されません。 したがって、プロパティ シート ウィンドウの作成によって AddPage が呼び出されるのを待つ必要はなく、プロパティ シートのコンストラクターから AddPage メンバー関数を呼び出すことができます。

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

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

  7. 各プロパティ ページとプロパティ シートのオーナー間でデータを交換します。 詳細については、「データの交換」を参照してください。

プロパティ シートの使用例については、MFC の「標準のサンプル」の PROPDLG を参照してください。

参照

概念

プロパティ シート (MFC)