共用方式為


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

內建屬性與自訂屬性不同它們的類別 COleControl已經實作。 COleControl 包含預先定義的成員函式控制項支援通用屬性。 一些通用屬性包含控制項的標題和前景和背景色彩。 如需其他內建屬性的詳細資訊,請參閱本主題稍後的 加入屬性精靈支援的內建屬性。 文章。 內建屬性的分派對應項目由 DISP_STOCKPROP一律加上前置字元。

本文說明如何將內建屬性 (在這種情況下,標題) 加入至 ActiveX 控制項加入屬性精靈並說明產生的程式碼修改。 主題包括:

  • 使用將加入屬性精靈的內建屬性。

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

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

  • 內建屬性和告知

  • 色彩屬性

    注意事項注意事項

    Visual Basic 自訂控制項通常會有屬性,例如 Top,寬度、高度、對齊、標記、名稱、TabIndex、TabStop 和父代。ActiveX 控制項容器,然而,對實作這些控制項屬性負責同時 ActiveX 控制項不應支援這些屬性。

使用將加入屬性精靈的內建屬性。

因為支援屬性由 COleControl,自動將內建屬性來將自訂屬性需要較少的程式碼。 下列程序示範將內建標頭屬性加入至 ActiveX 控制項架構,而且也可以加入其他內建屬性。 用標題替代選擇的內建屬性名稱。

使用加入屬性精靈,將內建的標題屬性

  1. 載入控制項的專案。

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

  3. 以滑鼠右鍵按一下控制項的 (程式庫節點的第二個節點介面節點) 開啟捷徑功能表。

  4. 從捷徑功能表中,按一下 [加入],再按一下 [加入屬性]。

    這樣會開啟 加入屬性精靈

  5. Property Name 方塊中,按一下 Caption

  6. 按一下 [完成]。

加入屬性內建屬性的精靈變更

由於 COleControl 支援內建屬性,加入屬性精靈在任何情況下都不會變更類別宣告;它將屬性加入至分派對應。 加入屬性精靈會將下列行加入至控制項的分派對應,位於實作 (.CPP) 檔案:

DISP_STOCKPROP_CAPTION()

下列程式碼行加入至控制項的介面描述 (.IDL) 檔案:

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

此行指派標題屬性特定 ID. 請注意屬性為可繫結,並在修改值之前要求資料庫的使用權限。

這個標頭屬性提供給控制項的使用者。 若要使用內建屬性的值,請存取 COleControl 基底類別的成員變數或成員函式。 如需這些成員變數和成員函式的詳細資訊,請參閱下一節,加入屬性精靈支援的內建屬性。

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

COleControl 類別提供九個內建屬性。 您可以將使用加入屬性精靈,您要的屬性。

屬性

分派對應項目

如何存取值。

外觀

DISP_STOCKPROP_APPEARANCE ()

做為 m_sAppearance的值可存取的。

BackColor

DISP_STOCKPROP_BACKCOLOR ()

值可以藉由呼叫 GetBackColor

BorderStyle

DISP_STOCKPROP_BORDERSTYLE ()

做為 m_sBorderStyle的值可存取的。

Caption

DISP_STOCKPROP_CAPTION ()

值可以藉由呼叫 InternalGetText

已啟用

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。 這個屬性會與 Caption,除了屬性名稱。

ReadyState

DISP_STOCKPROP_READYSTATE ()

做為 m_lReadyState 或 GetReadyState的值可供存取

內建屬性和告知

大部分的內建屬性具有可覆寫的告知功能。 例如,在中,當 BackColor 屬性變更時, OnBackColorChanged 函式 (控制項類別的成員函式) 呼叫。 預設實作(在COleControl中)會呼叫 InvalidateControl。 覆寫這個函式要採取其他動作以回應這個情況。

色彩屬性

則繪製控制項時,您可以使用內建 ForeColorBackColor 屬性,或者您的自訂色彩屬性。 若要使用色彩屬性,請呼叫 COleControl::TranslateColor 成員函式。 這個函式參數是色彩屬性的值和選擇性調色盤控制代碼。 傳回值是可傳遞至 GDI 函式,例如 SetTextColorCreateSolidBrushCOLORREF 值。

內建 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 控制項:方法