プロパティ ページの実装
ATL プロパティ ページ ウィザードは、Visual Studio 2019 以降では使用できません。
プロパティ ページは、IPropertyPage
または IPropertyPage2
インターフェイスを実装する COM オブジェクトです。 ATL では、[クラスの追加] ダイアログ ボックスの ATL プロパティ ページ ウィザード経由のプロパティ ページの実装をサポートしています。
ATL を使用してプロパティ ページを作成するには:
ATL ダイナミック リンク ライブラリ (DLL) サーバー プロジェクトを作成するか開きます。
[クラスの追加] ダイアログ ボックスを開き、[ATL プロパティ ページ] を開きます。
プロパティ ページがアパートメント スレッドであることを確認します (ユーザー インターフェイスがあるため)。
タイトル、説明 (ドキュメント文字列)、およびページに関連付けるヘルプ ファイルを設定します。
生成されたダイアログ リソースに、プロパティ ページのユーザー インターフェイスとして機能するコントロールを追加します。
ページのユーザー インターフェイスの変更に応じて、検証の実行、ページ サイトの更新、またはページに関連付けられたオブジェクトの更新を実行します。 特に、ユーザーがプロパティ ページを変更した場合は、IPropertyPageImpl::SetDirty を呼び出します。
必要に応じて、次のガイドラインを使用して
IPropertyPageImpl
メソッドをオーバーライドします。IPropertyPageImpl メソッド オーバーライドの目的... メモ SetObjects ページに渡される複数のオブジェクトとそれらがサポートするインターフェイスの基本的なサニティ チェックを実行します。 基底クラスの実装を呼び出す前に、自分のコードを実行します。 設定されるオブジェクトが期待に沿っていない場合は、できるだけ早く呼び出しを失敗させる必要があります。 アクティブ化します ページのユーザー インターフェイスを初期化します (例: ダイアログのコントロールにオブジェクトの現在のプロパティ値を設定する、コントロールを動的に作成する、その他の初期化を実行する)。 自分のコードで更新を試行する前に基底クラスの実装を呼び出して、基底クラスでダイアログ ウィンドウとすべてのコントロールが作成できるようにします。 [適用] プロパティの設定を検証し、オブジェクトを更新します。 呼び出しのトレース以外のことは行われないため、基底クラスの実装を呼び出す必要はありません。 非アクティブ化 ウィンドウに関連する項目をクリーンアップします。 基底クラスの実装では、プロパティ ページを表すダイアログ ボックスが破棄されます。 ダイアログ ボックスが破棄される前にクリーンアップする必要がある場合は、基底クラスを呼び出す前に、自分のコードを追加する必要があります。
プロパティ ページの実装の例については、「例: プロパティ ページの実装」を参照してください。
Note
プロパティ ページに ActiveX コントロールをホストする場合は、ウィザードで生成されたクラスの派生を変更する必要があります。 基底クラスの一覧の CDialogImpl<CYourClass> を CAxDialogImpl<CYourClass> に置き換えます。