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