MFC ActiveX 控件:添加常用属性
常用属性与自定义属性的不同之处在于由类 COleControl已经实现。COleControl 包含支持控件的公共属性的预定义的成员函数。某些公共属性包含控件的说明和前景色和背景色。有关其他常用属性的信息,请参见 添加属性向导支持的常用属性 本文中。常用属性的计划映射项。 DISP_STOCKPROP始终前缀。
本文介绍如何将常用属性 (在本例中,声明) 到 Activex 控件使用 " 添加属性向导并说明中出现的代码修改。主题包括:
使用添加属性向导的一个常用属性
添加属性常用属性的向导更改
添加属性向导支持的常用属性
常用属性和通知
颜色属性
说明 Visual Basic 自定义控件通常具有属性 (如顶部,左侧,宽度,高度,对齐,标记、名称、 TabIndex、 TabStop 和父级。Activex 控件容器,但是,对于实现这些控件的属性负责和 Activex 控件不应支持这些属性。
使用添加属性向导的一个常用属性
添加常用属性相对于添加自定义属性,因为为属性需少量代码的支持是由 COleControl自动处理。下面的过程演示添加股票声明属性设置为 Activex 控件结构,还可以使用添加其他常用属性。用声明替换选定的常用属性名称。
使用 " 添加属性向导 ",添加股票 description 属性
加载您的控件的项目中。
在 " 类视图 " 中,展开您的控件库节点。
右击您的控件 (库节点的第二个节点接口节点) 打开快捷菜单。
从快捷菜单上,单击 添加 然后单击 添加属性。
这将打开 添加属性向导。
在 属性名 框中,单击 标题。
单击**“完成”**。
添加属性常用属性的向导更改
由于 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。,如果要采取其他操作来响应此情况,请重写此功能。
颜色属性
,在绘制控件时,可以使用常用 ForeColor 和 BackColor 属性,或者您的自定义颜色属性。若要使用颜色属性,请调用 COleControl::TranslateColor 成员函数。此函数的参数为 color 属性的值和可选调色板处理。返回值是可传递到 GDI 功能,例如 SetTextColor 和 CreateSolidBrush的 COLORREF 值。
股票 ForeColor 和 BackColor 属性的颜色值通过调用 GetForeColor 或 GetBackColor 函数获取,分别。
,在绘制控件时,下面的示例演示使用这两种颜色属性。它初始化变量临时的 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);