次の方法で共有


MFC ActiveX コントロール : カスタム プロパティ ページの追加

場合によっては適切に 1 個のプロパティ ページに適合するより、 ActiveX コントロールにより多くのプロパティがあります。この場合は、 ActiveX コントロールに二つのプロパティを表示するプロパティ ページを追加できます。

既に 1 個以上のプロパティ ページがあるこの技術情報では、 ActiveX コントロールに新しいプロパティ ページを追加する方法について説明します。ストック プロパティ ページ (フォント、ピクチャ、または色)の追加の詳細については、技術情報 MFC ActiveX コントロール: ストック プロパティ ページを使用するを参照してください。

次の手順では、 ActiveX コントロール ウィザードが作成するサンプル ActiveX コントロールのフレームワークを使用します。したがって、クラス名と ID は、この例で一意です。

ActiveX コントロールのプロパティ ページを使用する方法の詳細については、次の技術情報を参照:

新しいプロパティ ページ テンプレートをプロジェクトに挿入するには

  1. 開いているコントロール プロジェクトでプロジェクトのワークスペースのリソース ビューを開きます。

  2. ショートカット メニューを開き、をクリック **リソースを追加します。**するリソース ビューで右クリックします。

  3. ダイアログ ノードを展開し、 IDD_OLE_PROPPAGE_SMALLを選択します。

  4. プロジェクトにリソースを追加するに New をクリックします。

  5. プロパティ ウィンドウを更新する新しいプロパティ ページ テンプレートを選択します。

  6. ID,id のプロパティの新しい値を入力します。この例では IDD_PROPPAGE_NEWPAGEを使用します。

  7. ツール バーの [<ファイル名> の保存] をクリックします。

新しいテンプレートをクラスに関連付けるには

  1. クラス ビューを開きます。

  2. ショートカット メニューを開くには、クラス ビューで右クリックします。

  3. ショートカット メニューの [追加] をクリックし、さらに [クラスの追加] をクリックします。

    これは クラスの追加 のダイアログ ボックスを開きます。

  4. MFC クラス テンプレートをダブルクリック。

  5. MFC クラス ウィザードクラス名(L),クラス名,Class 名 ボックスで、ダイアログ クラスの名前を入力します。(この例では CAddtlPropPageします)。

  6. ファイル名を変更する場合は、 変更(G),変更をクリックします。実装およびヘッダー ファイルの名前を入力するか、既定の名前を受け入れます。

  7. 基本クラス(A),基本クラス ボックスで、ボックス COlePropertyPage

  8. Dialog ID ボックスで、ボックス IDD_PROPPAGE_NEWPAGE

  9. クラスを作成するクリック 完了

割り当てるには、コントロールのユーザーは、この新しいプロパティ ページに加えます、コントロールのプロパティ ページ ID のマクロ セクションに次の変更もアクセスします (コントロールの実装ファイル内):

BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
   PROPPAGEID(CMyAxUIPropPage::guid)
   PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)

BEGIN_PROPPAGEIDS のマクロ (プロパティ ページの数)の 2 番目のパラメーターを 1 ~ 2. から増やす必要があることに注意してください。

ヘッダーを含むようにコントロールの実装ファイル (.cpp)ファイルを変更する必要があります。H)新しいプロパティ ページ クラス ファイル。

次の手順では、新しいプロパティのページに型名とキャプションを提供する 2 とおりの新しい文字列リソースを作成することです。

新しい文字列のリソースをプロパティ ページに追加するには

  1. 開いているコントロール プロジェクトによってリソース ビューを開きます。

  2. ストリング テーブル フォルダーをダブルクリック、次に、文字列を追加する既存の文字列テーブル リソースをダブルクリック。

    つまり、ペインの文字列テーブルを開きます。

  3. 空白行を文字列テーブルの最後にあるをクリックし、文字列のテキスト、またはキャプションを入力する: たとえば、 「追加のプロパティ ページ」。

    これは キャプションID,id ボックスを表示 String Properties のページを開きます。キャプション ボックスに、入力した文字列が含まれています。

  4. ID,id ボックスでは、文字列の ID を選択または入力します。押してが終了するとなります。

    この例では、新しいプロパティ ページの型名で IDS_SAMPLE_ADDPAGE を使用します。

  5. キャプションの ID と 「追加のプロパティ ページ] の IDS_SAMPLE_ADDPPG_CAPTION を使用して手順 3 ~ 4 を繰り返します。

  6. 新しいプロパティ ページ クラスの .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);
    }
    
  7. IDS_SAMPLE_ADDPPG_CAPTIONCOlePropertyPage のコンストラクターに渡すことに CAddtlPropPage のコンストラクターを次のように変更します:

    CAddtlPropPage::CAddtlPropPage() :
       COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION)
    {
    
    }
    

必要な変更のプロジェクトをリビルドにした、新しいプロパティ ページをテストするテスト コンテナーを使用して後。テスト コンテナーへのアクセス方法については、「テスト コンテナーでのプロパティとイベントのテスト」を参照してください。

参照

概念

MFC ActiveX コントロール