共用方式為


MFC ActiveX 控制項: 加入另一個自訂屬性頁

有時候,ActiveX 控制項必須比可合理地容納在一個內容頁上的多個屬性。 如此一來,您可以將屬性頁加入 ActiveX 控制項來顯示這些屬性。

本文將告訴您已經有一個以上的屬性頁的 ActiveX 控制項中加入新的屬性頁。 如需有關將內建屬性頁 (字型、 圖片或色彩),請參閱文件 MFC ActiveX 控制項: 使用內建屬性頁

下列程序會使用 ActiveX 控制項精靈所建立的範例 ActiveX 控制項架構。 因此,類別名稱和識別項是這個範例專用。

如需有關如何使用 ActiveX 控制項中的 [屬性頁的詳細資訊,請參閱下列文件:

若要將新的屬性頁樣板插入專案

  1. 控制項專案開啟時,開啟 [專案工作區中的 [資源檢視]。

  2. 若要開啟快顯功能表,然後按一下 [資源檢視中以滑鼠右鍵按一下加入資源

  3. 展開對話方塊 ] 節點,然後選取 IDD_OLE_PROPPAGE_SMALL

  4. 按一下 [ New若要將資源新增至您的專案。

  5. 選取新的屬性頁樣板,以重新整理 [屬性] 視窗。

  6. 請輸入新的值給 ID 屬性。 這個範例會使用 IDD_PROPPAGE_NEWPAGE

  7. 按一下工具列上的 [儲存]。

若要將新的範本產生關聯的類別

  1. 開啟 [類別檢視]。

  2. 在 [類別檢視來開啟快顯功能表上按一下滑鼠右鍵。

  3. 在捷徑功能表中,按一下 [加入] 後再按一下 [加入類別]。

    如此會開啟加入類別對話方塊。

  4. 連按兩下 [ MFC 類別範本。

  5. 類別名稱 編輯方塊中的 MFC 類別精靈,鍵入新的對話方塊類別的名稱。 (在本例中, CAddtlPropPage。)

  6. 如果您想要變更檔名,按一下 [ 變更。 輸入您實作及標頭的檔案的名稱,或接受預設名稱。

  7. 基底類別 ] 方塊中選取COlePropertyPage

  8. 對話方塊 ID ] 方塊中選取 IDD_PROPPAGE_NEWPAGE

  9. 按一下 [ 完成若要建立的類別。

若要允許控制項的使用者存取這個新的屬性頁,對控制項的屬性頁 Id 巨集區段 (位於控制項實作檔) 中的下列變更:

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

請注意,您必須增加第二個參數BEGIN_PROPPAGEIDS巨集 (內容頁面計數) 1 到 2。

您也必須修改控制項實作檔 (。Cpp) 來包含標頭 (。H) 檔的新的屬性頁類別。

下一個步驟需要建立兩個新的字串資源,將提供新的屬性頁型別名稱及標題。

若要加入新的字串資源加入屬性頁

  1. 控制項專案開啟時,開啟 [資源檢視]。

  2. 連按兩下 [ 字串資料表資料夾,然後連按兩下現有的字串表要加入字串資源。

    此視窗中開啟字串資料表。

  3. 選取空白的行結尾的字串資料表,然後輸入文字或字串的標題: 例如,"其他屬性頁面 」。

    如此會開啟字串屬性 頁中顯示 標題ID 方塊。 標題 ] 方塊中包含您所輸入的字串。

  4. ID 方塊中,選取或輸入字串的識別碼。 當您完成時,請按下 Enter。

    這個範例會使用 IDS_SAMPLE_ADDPAGE 為新的屬性頁的型別名稱。

  5. 重複步驟 3 和 4 使用 IDS_SAMPLE_ADDPPG_CAPTION 編號] 和 ["額外屬性頁] 標題。

  6. 在中。您新的屬性頁類別的 CPP 檔 (在本例中, CAddtlPropPage) 修改CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry ,以便以傳遞 IDS_SAMPLE_ADDPAGE AfxOleRegisterPropertyPageClass、 在下列範例中:

    BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
    {
       if (bRegister)
          return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
             m_clsid, IDS_SAMPLE_ADDPAGE);
       else
          return AfxOleUnregisterClass(m_clsid, NULL);
    }
    
  7. 修改建構函式的CAddtlPropPage ,讓 IDS_SAMPLE_ADDPPG_CAPTION 傳遞至COlePropertyPage建構函式,如下所示:

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

之後您所做必要的修改重新建置您的專案,並使用測試容器來測試新的屬性頁。 如需存取測試容器的詳細資訊,請參閱用測試容器測試屬性和事件

請參閱

概念

MFC ActiveX 控制項