共用方式為


MFC ActiveX 控制項: 加入內建屬性

內建屬性與不同的自訂屬性類別所實作的COleControlCOleControl包含預先定義的成員函式支援控制項的通用屬性。 有些公用的內容包括控制項的標題以及前景和背景色彩。 如需其他內建屬性的資訊,請參閱所加入屬性精靈支援的內建屬性本文件稍後。 內建屬性的分派對應項目永遠冠 DISP_STOCKPROP

這篇文章說明如何將內建的屬性 (在此案例中,標題) 加入至 ActiveX 控制項使用加入屬性精靈,並說明程式碼修改結果。 主題包括:

  • 使用加入屬性精靈來加入內建屬性

  • 加入屬性精靈針對內建屬性的變更

  • 加入屬性精靈支援的內建屬性

  • 內建屬性和通知

  • 色彩屬性

    注意事項注意事項

    Visual Basic 的自訂控制項通常會有屬性,例如頁首、 左、 寬度、 高度、 對齊、 標記、 名稱、 定位點索引、 定位點和父代。ActiveX 控制項的容器,不過,負責實作這些控制項的屬性,因此 ActiveX 控制項應該不會支援這些屬性。

使用加入屬性精靈來加入內建屬性

新增內建屬性需要較少的程式碼,不如加入自訂屬性,因為支援的屬性都自動地處理COleControl。 下列程序會示範將內建的 [標題] 屬性加入至 ActiveX 控制架構,也可用來加入其他內建屬性。 以取代所選取的內建屬性名稱的標題。

若要新增內建的標題屬性使用加入屬性精靈

  1. 載入控制項專案。

  2. 在 [類別檢視中,展開您的控制項程式庫節點。

  3. 您的控制項 (程式庫節點的第二個節點) 的 [介面] 節點上按一下滑鼠右鍵來開啟快顯功能表。

  4. 從快速鍵功能表中,按一下 [ 新增 ,然後按一下 [ 加入屬性

    如此會開啟加入屬性精靈

  5. 屬性名稱 方塊中,按一下 標題

  6. 按一下 [完成]。

加入屬性精靈針對變更內建屬性

因為COleControl支援內建屬性,加入屬性精靈不會變更以任何方式 ; 在類別宣告 它會將屬性加入至分派對應。 加入屬性精靈會將下面這一行加入至控制項,在實作中的分派對應 (。Cpp):

DISP_STOCKPROP_CAPTION()

下面這一行會加入至控制項的介面描述 (。IDL) 檔案:

[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;

這一行會指定 [標題] 屬性是特定的識別碼。 請注意屬性是可繫結,而且會從資料庫要求的權限修改值之前。

讓 [標題] 屬性至控制項的使用者。 若要使用內建屬性的值,可存取成員變數或成員函式的COleControl基底類別。 如需有關這些成員變數及成員函式的詳細資訊,請參閱下一步] 區段中,藉由加入屬性精靈支援的內建屬性。

內建支援的屬性加入屬性精靈

COleControl類別會提供九個內建屬性。 您可以新增您想要使用加入屬性精靈的內容。

屬性

分派對應項目

如何存取值

外觀

DISP_STOCKPROP_APPEARANCE)

值是可存取 m_sAppearance

BackColor

DISP_STOCKPROP_BACKCOLOR)

藉由呼叫可存取值GetBackColor

BorderStyle

DISP_STOCKPROP_BORDERSTYLE)

值是可存取 m_sBorderStyle

Caption

DISP_STOCKPROP_CAPTION)

藉由呼叫可存取值InternalGetText

Enabled

DISP_STOCKPROP_ENABLED)

值是可存取 m_bEnabled

Font

DISP_STOCKPROP_FONT)

請參閱文件 MFC ActiveX 控制項: 使用字型的使用方式。

ForeColor

DISP_STOCKPROP_FORECOLOR)

藉由呼叫可存取值GetForeColor

hWnd

DISP_STOCKPROP_HWND)

值是可存取m_hWnd

文字

DISP_STOCKPROP_TEXT)

藉由呼叫可存取值InternalGetText。 此屬性等同於標題,除了做為屬性名稱。

ReadyState

DISP_STOCKPROP_READYSTATE()

M_lReadyState 是可存取的值或GetReadyState

內建屬性及告知

大多數內建屬性具有可覆寫告知函式。 比方說,每當BackColor屬性變更時, OnBackColorChanged會呼叫函式 (控制項類別的成員函式)。 預設實作 (在COleControl) 呼叫InvalidateControl。 如果您想要採取其他動作以回應這種情況下,覆寫這個函式。

色彩屬性

您可以使用內建ForeColorBackColor屬性,或是您自己的自訂色彩屬性,當繪製控制項。 若要使用的色彩屬性,呼叫 COleControl::TranslateColor 成員函式。 這個函式的參數是 「 顏色 」 屬性和選擇性調色盤的控制代碼的值。 傳回值是 COLORREF 值,可傳遞至 GDI 的功能,例如SetTextColorCreateSolidBrush

內建的色彩值ForeColorBackColor屬性由呼叫其中一個GetForeColorGetBackColor有作用,分別。

下列範例會示範繪製控制項時,請使用下列兩個色彩屬性。 它會初始化暫時 COLORREF 變數和CBrush物件的呼叫TranslateColor: 一個使用ForeColor屬性和其他使用BackColor屬性。 暫時CBrush物件會被用來繪製控制項的矩形,並使用設定的文字色彩ForeColor屬性。

CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

請參閱

參考

COleControl 類別

概念

MFC ActiveX 控制項

MFC ActiveX 控制項: 內容

MFC ActiveX 控制項: 方法