MFC ActiveX 控件:添加常用属性

常用属性与自定义属性的不同之处在于由类 COleControl已经实现。COleControl 包含支持控件的公共属性的预定义的成员函数。某些公共属性包含控件的说明和前景色和背景色。有关其他常用属性的信息,请参见 添加属性向导支持的常用属性 本文中。常用属性的计划映射项。 DISP_STOCKPROP始终前缀。

本文介绍如何将常用属性 (在本例中,声明) 到 Activex 控件使用 " 添加属性向导并说明中出现的代码修改。主题包括:

  • 使用添加属性向导的一个常用属性

  • 添加属性常用属性的向导更改

  • 添加属性向导支持的常用属性

  • 常用属性和通知

  • 颜色属性

    说明说明

    Visual Basic 自定义控件通常具有属性 (如顶部,左侧,宽度,高度,对齐,标记、名称、 TabIndex、 TabStop 和父级。Activex 控件容器,但是,对于实现这些控件的属性负责和 Activex 控件不应支持这些属性。

使用添加属性向导的一个常用属性

添加常用属性相对于添加自定义属性,因为为属性需少量代码的支持是由 COleControl自动处理。下面的过程演示添加股票声明属性设置为 Activex 控件结构,还可以使用添加其他常用属性。用声明替换选定的常用属性名称。

使用 " 添加属性向导 ",添加股票 description 属性

  1. 加载您的控件的项目中。

  2. 在 " 类视图 " 中,展开您的控件库节点。

  3. 右击您的控件 (库节点的第二个节点接口节点) 打开快捷菜单。

  4. 从快捷菜单上,单击 添加 然后单击 添加属性

    这将打开 添加属性向导

  5. 属性名 框中,单击 标题

  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

Enabled

DISP_STOCKPROP_ENABLED ()

值可访问作为 m_bEnabled

字体

DISP_STOCKPROP_FONT ()

对用法参见中的文章 MFC Activex 控件:使用字体

ForeColor

DISP_STOCKPROP_FORECOLOR ()

通过调用 GetForeColor值可访问。

hWnd

DISP_STOCKPROP_HWND ()

值可访问作为 m_hWnd

Text

DISP_STOCKPROP_TEXT ()

值可访问通过调用 InternalGetText。此属性与 标题,但属性名称。

ReadyState

DISP_STOCKPROP_READYSTATE ()

值可访问作为 m_lReadyState 或 GetReadyState

常用属性和通知

大多数常用属性具有可重写的通知函数。例如,发生改变,就 BackColor 属性, OnBackColorChanged 函数 (控件类的成员函数) 调用。默认实现 (在 COleControl) 调用 InvalidateControl。,如果要采取其他操作来响应此情况,请重写此功能。

颜色属性

,在绘制控件时,可以使用常用 ForeColorBackColor 属性,或者您的自定义颜色属性。若要使用颜色属性,请调用 COleControl::TranslateColor 成员函数。此函数的参数为 color 属性的值和可选调色板处理。返回值是可传递到 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 控件:方法