MFC ActiveX 控制: 屬性頁
屬性頁允許 ActiveX 控制項的使用者檢視和變更 ActiveX 控制項的屬性。 這些屬性以叫用控制項屬性對話方塊來存取,這個對話方塊包含一張以上的屬性頁,提供檢視和編輯控制項屬性要使用的自訂圖形介面。
ActiveX 控制項屬性頁會顯示兩種方式:
當控制項的屬性的動詞 (OLEIVERB_PROPERTIES) 是叫用,控制項會開啟獨佔式屬性] 對話方塊,其中包含控制項的屬性頁。
容器可顯示它自己非強制回應對話方塊,顯示選取控制項的屬性頁。
[屬性] 對話方塊 (如下圖所示) 來顯示目前的屬性頁的區域所組成,屬性頁和執行一般工作,例如關閉屬性頁對話方塊、 取消任何變更,或立即將變更套用至 ActiveX 控制項的按鈕的集合之間切換的標籤。
內容] 對話方塊
本文涵蓋與 ActiveX 控制項中使用屬性頁相關的主題。 這些需求包括:
實作 ActiveX 控制項的 [預設] 屬性頁
將控制項加入至屬性頁
自訂的 DoDataExchange 函式
如需有關如何使用 ActiveX 控制項中的 [屬性頁的詳細資訊,請參閱下列文件:
如需使用 MFC 應用程式而不是 ActiveX 控制項的屬性工作表,請參閱屬性工作表 (MFC)。
實作預設屬性頁
如果您使用 ActiveX 控制項精靈來建立控制項專案時,ActiveX 控制項精靈會提供預設屬性頁類別的控制項衍生自COlePropertyPage 類別。 剛開始時,此屬性頁是空白的但您可以加入任何對話方塊控制項集合。 因為 「 ActiveX 控制精靈 」 會只有一個屬性頁類別建立根據預設,額外的屬性頁類別 (也衍生自COlePropertyPage) 必須使用類別檢視來建立。 如需有關此程序的詳細資訊,請參閱MFC ActiveX 控制項: 加入另一個自訂屬性頁。
實作屬性頁 (在此情況下,預設值) 是三個步驟的程序:
若要實作的屬性頁
新增COlePropertyPage-衍生控制項專案的類別。 如果使用 ActiveX 控制項精靈 (如同在此情況下) 來建立專案後,預設屬性頁類別已經存在。
使用對話方塊編輯器來將任何控制項加入屬性頁樣板。
自訂DoDataExchange函式的COlePropertyPage-衍生的類別來交換屬性頁] 控制項和 ActiveX 控制項之間的值。
例如下列的程序的目的使用簡單的控制項 (名為"Sample")。 範例使用 ActiveX 控制項精靈所建立,並包含內建標題屬性。
將控制項加入至屬性頁
若要將控制項加入屬性頁
控制項專案開啟時,開啟 [資源檢視]。
連按兩下 [ 對話方塊目錄圖示。
開啟 IDD_PROPPAGE_SAMPLE 對話方塊。
ActiveX 控制項精靈的對話方塊 ID,如此一來,範例後面附加專案的名稱。
拖放選取的控制項從工具箱拖曳至對話方塊區域。
這個範例中,為文字標籤控制項"標題:",並使用編輯方塊控制項 IDC_CAPTION 識別項就足夠了。
按一下 儲存以儲存變更] 工具列上。
既然已經被修改的使用者介面,您要連結的編輯方塊與 [標題] 屬性。 這是在下列區段中藉由編輯CSamplePropPage::DoDataExchange函式。
自訂 DoDataExchange 函式
屬性頁CWnd::DoDataExchange函式可讓您連結控制項中的屬性的實際值的屬性頁值。 若要建立連結,您必須將適當的屬性頁欄位對應到其各自的控制項屬性。
使用屬性頁實作這些對應 DDP_ 函式。 DDP_ 函式 DDX_ 用於標準 MFC 對話方塊中,有一個例外狀況的函式。 除了參考成員變數, DDP_ 函式都接受控制項屬性的名稱。 下面是一個典型的項目,在DoDataExchange內容頁的函式。
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
這項功能將相關聯的屬性頁的m_caption成員變數,標題為使用DDP_TEXT函式。
插入屬性頁] 控制項之後,您必須建立屬性頁] 控制項之間的連結IDC_CAPTION,以及實際的控制項屬性,標題為: 使用 DDP_Text 如上文所述般的執行。
屬性頁 (MFC)有其他對話方塊控制項類型,例如核取方塊、 選項按鈕及清單方塊。 下表列出的屬性頁的整組 DDP_ 函式和其用途:
屬性頁函式
函式名稱 |
這可以用來連結 |
---|---|
DDP_CBIndex |
控制項屬性與下拉式方塊中選取的字串的索引。 |
DDP_CBString |
控制項屬性與下拉式方塊中選取的字串。 選取的字串可以以字母為首的同一個做為屬性的值,但需要不一定要完全符合。 |
DDP_CBStringExact |
控制項屬性與下拉式方塊中選取的字串。 選取的字串與屬性的字串值必須完全符合。 |
DDP_Check |
與控制項屬性的核取方塊。 |
DDP_LBIndex |
控制項屬性與清單方塊中選取的字串的索引。 |
DDP_LBString |
控制項屬性與清單方塊中選取的字串。 選取的字串可以以字母為首的同一個做為屬性的值,但需要不一定要完全符合。 |
DDP_LBStringExact |
控制項屬性與清單方塊中選取的字串。 選取的字串與屬性的字串值必須完全符合。 |
DDP_Radio |
控制項屬性與選項按鈕。 |
DDP_Text |
與控制項屬性的文字。 |