MFC ActiveX コントロール : カスタム プロパティ ページの追加
と同様に、1 種類のプロパティ ページに適合するより、ActiveX コントロールのプロパティがあります。 この場合は、ActiveX コントロールにこれらのプロパティを表示するプロパティ ページを追加できます。
ここでは、少なくとも 1 つがプロパティ ページを持つ ActiveX コントロールに新しいプロパティ ページを追加する方法について説明します。 ストック プロパティ ページ (フォント、画像、色) の追加の詳細については、記事 MFC ActiveX コントロール: ストック プロパティ ページを使用します。を参照します。
次の手順では、ActiveX コントロール ウィザードが作成したサンプル ActiveX コントロール フレームワークを使用します。 したがって、クラス名と識別子はこの例で一意です。
ActiveX コントロールのプロパティ ページを使用する詳細については、次のトピックを参照します:
MFC ActiveX コントロール: ストック プロパティ ページを使用します。
注意
新しいプロパティ ページが ActiveX コントロールのプロパティ ページのサイズの標準に準拠することを強くお勧めします。標準的なピクチャおよびカラー プロパティ ページは 250x62 ダイアログ単位 (DLU) を測定します。標準フォント プロパティ ページは 250x110 DLU です。ActiveX コントロール ウィザードで作成する既定のプロパティ ページは 250x62 DLU Standard を使用します。
新しいプロパティ ページ テンプレートをプロジェクトに追加するには
開くコントロール プロジェクトを開き、プロジェクト ワークスペースの開いているリソース ビュー。
ショートカット メニューを開き、[リソースの追加] をクリックしますにリソース ビューを右クリックします。
ダイアログ ノードを展開し、IDD_OLE_PROPPAGE_SMALLを選択します。
プロジェクトにリソースを追加するに New をクリックします。
プロパティ ウィンドウを更新する新しいプロパティ ページ テンプレートを選択します。
ID のプロパティの新しい値を入力します。 この例では IDD_PROPPAGE_NEWPAGEを使用します。
ツール バーの [<ファイル名> の保存] をクリックします。
新しいテンプレートをクラスに関連付けます。
クラス ビューを開きます。
ショートカット メニューを開くには、クラス ビューで右クリックします。
ショートカット メニューの [追加] をクリックし、さらに [クラスの追加] をクリックします。
これは クラスの追加 ダイアログ ボックスが表示されます。
MFC クラス のテンプレートをダブルクリックします。
MFC クラス ウィザードの [クラス名] ダイアログ ボックスで、新しいクラスの名前を入力します。(この例では CAddtlPropPageします)。
ファイル名を変更するには、変更をクリックします。 実装およびヘッダー ファイル名を入力するか、既定の名前を受け入れます。
基底クラス ボックスで、COlePropertyPageを選択します。
ダイアログ ID ボックスで、IDD_PROPPAGE_NEWPAGEを選択します。
クラスをクリック 完了 。
割り当てるにはコントロールのユーザーは、この新しいプロパティ ページで、必要なコントロールのプロパティ ページの ID マクロ セクションに次の変更もアクセスします (コントロールの実装ファイルにある) :
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
BEGIN_PROPPAGEIDS マクロ (プロパティ ページ数) の 2 番目のパラメーターを 1 ~ 2.の高めなければことに注意してください。
、ヘッダーが格納されるようにコントロールの実装ファイル (.cpp) ファイルを変更する必要があります。H) 新しいプロパティ ページ クラス ファイル。
次の手順では、新しいプロパティ ページに型名とキャプションを提供する 2 種類の新しい文字列のリソースを作成することです。
新しい文字列リソースがプロパティ ページに追加するには
開くコントロール プロジェクトを開き開いているリソース ビュー。
ストリング テーブル フォルダーをダブルクリックし、文字列を追加する既存のストリング テーブルのリソースをダブルクリックします。
これはウィンドウのストリング テーブルを開きます。
空白行をストリング テーブルの最後に選択し、文字列のテキスト、またはキャプションを入力する: たとえば、「追加プロパティ ページ」。
これは キャプション と ID ボックスを表示 文字列プロパティ ページが表示されます。 キャプション ボックスに入力した文字列が含まれます。
ID ボックスで、文字列の ID を選択するか入力します。 キーは、Enter キーを押します。
この例では、新しいプロパティ ページのタイプ名に IDS_SAMPLE_ADDPAGE を使用します。
キャプションの ID と「追加プロパティ ページ」の IDS_SAMPLE_ADDPPG_CAPTION を使用して手順 3 ~ 4 を繰り返します。
新しいプロパティ ページ クラスの .cpp ファイルには IDS_SAMPLE_ADDPAGE が AfxOleRegisterPropertyPageClassを渡せるように (この例では CAddtlPropPage) 次の例のように CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry を変更する:
BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister) { if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_SAMPLE_ADDPAGE); else return AfxOleUnregisterClass(m_clsid, NULL); }
IDS_SAMPLE_ADDPPG_CAPTION が COlePropertyPage のコンストラクターに渡すことが CAddtlPropPage のコンストラクターを次のように変更する:
CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
必要な変更のリビルドにし、プロジェクトを新しいプロパティ ページをテストするには、テスト コンテナーを使用した後。 テスト コンテナーへのアクセス方法については、「テスト コンテナーでのプロパティとイベントのテスト」を参照してください。