次の方法で共有


プロパティ ページの実装

更新 : 2007 年 11 月

プロパティ ページは、IPropertyPage インターフェイスや IPropertyPage2 インターフェイスを実装する COM オブジェクトです。ATL では、[クラスの追加] ダイアログ ボックスATL プロパティ ページ ウィザードによって、プロパティ ページの実装をサポートしています。

ATL でプロパティ ページを作成するには、次の作業を実行します。

  • ATL ダイナミック リンク ライブラリ (DLL: Dynamic Link Library) サーバー プロジェクトを作成するか、または開きます。

  • [クラスの追加] ダイアログ ボックスを開き、[ATL プロパティ ページ] を選択します。

  • プロパティ ページにはユーザー インターフェイスがあるため、プロパティ ページがアパートメント スレッドであることを確認します。

  • ページに関連付けるタイトル、説明 (ドキュメント文字列)、およびヘルプ ファイルを設定します。

  • 生成したダイアログ リソースに、プロパティ ページのユーザー インターフェイスとして使用するコントロールを追加します。

  • 検証、ページ サイトの更新、またはページに関連するオブジェクトの更新を行うために、ページのユーザー インターフェイスの変更に対応します。特に、ユーザーがプロパティ ページに変更を加えたときは、IPropertyPageImpl::SetDirty を呼び出します。

  • 次のガイドラインに従って、IPropertyPageImpl のメソッドをオーバーライドすることもできます。

    IPropertyPageImpl メソッド

    オーバーライドが必要になるケース

    メモ

    SetObjects

    ページに渡すオブジェクトの数とオブジェクトがサポートするインターフェイスに関して、基本的な正常性チェックを行う場合

    基本クラスの実装を呼び出す前に、コードを実行してください。設定されたオブジェクトが予測どおりに動作しない場合は、すぐに呼び出しを中止する必要があります。

    Activate

    ページのユーザー インターフェイスを初期化する場合 (たとえば、オブジェクトの現在のプロパティ値を使用してダイアログ ボックスのコントロールを設定したり、コントロールを動的に作成したり、その他の初期化を行ったりする場合など)

    基本クラスの実装を呼び出してから、コードを呼び出してください。そうすると、ダイアログ ウィンドウやすべてのコントロールを基本クラスで作成してから、コードで更新できます。

    Apply

    プロパティの設定値を検証してからオブジェクトを更新する場合

    基本クラスの実装は、呼び出しのトレース以外何もしないため、呼び出す必要はありません。

    Deactivate

    ウィンドウの関連項目をクリーンアップする場合

    基本クラスの実装は、プロパティ ページを表すダイアログ ボックスを破棄します。ダイアログ ボックスが破棄される前にクリーンアップを行う必要がある場合は、基本クラスを呼び出す前にコードを追加してください。

プロパティ ページの実装例については、「例 : プロパティ ページの実装」を参照してください。

53c000zx.alert_note(ja-jp,VS.90).gifメモ :

プロパティ ページで ActiveX コントロールをホストする場合は、ウィザードによって生成されたクラスの派生を変更する必要があります。基本クラスの一覧にある CDialogImpl<CYourClass>CAxDialogImpl<CYourClass> に置き換えてください。

参照

処理手順

ATLPages サンプル : IPropertyPageImpl を使用したプロパティ ページの実装

概念

ATL COM プロパティ ページ