添加控件(ATL 教程,第 2 部分)
在此步骤中,我们将控件添加到项目、生成控件,并在网页上对其进行测试。
过程
将对象添加到 ATL 项目的步骤
在“解决方案资源管理器”中,右键单击“
Polygon
”项目。指向快捷菜单上的“添加”,然后单击子菜单中的“新建项”。
“添加新项” 对话框随即出现。 左侧树结构中列出了不同的对象类别。
单击 ATL 文件夹。
从右侧的模板列表中,选择“ATL 控件”。 单击“添加” 。 ATL 控件向导会打开,你可以配置控件。
键入
PolyCtl
作为短名称,注意其他字段会自动完成。 请勿单击“完成”,因为必须进行更多更改。
ATL 控件向导的“名称”页包含以下字段:
字段 | 目录 |
---|---|
短名称 | 为控件输入的名称。 |
类 | 为实现控件而创建的 C++ 类名称。 |
.h 文件 | 创建的用于包含 C++ 类的定义的文件。 |
.cpp 文件 | 创建的用于包含 C++ 类的实现的文件。 |
CoClass | 此控件的组件类的名称。 |
Interface | 控件将在其上实现其自定义方法和属性的接口的名称。 |
类型 | 控件的说明。 |
编程 ID | 可用于查找控件 CLSID 的可读名称。 |
在 ATL 控件向导中,你会发现必须更改多个其他设置。
启用对丰富错误信息和连接点的支持的步骤
单击“选项”以打开“选项”页。
选中“连接点”复选框。 此选项在 IDL 文件中创建对传出接口的支持。
还可以添加接口以扩展控件的功能。
扩展控件的功能的步骤
单击“接口”打开“接口”页。
选择
IProvideClassInfo2
并单击向上箭头,将其移动到“受支持的项”列表。选择
ISpecifyPropertyPages
并单击向上箭头,将其移动到“受支持的项”列表。
还可以使控件可插入,这意味着它可嵌入到支持嵌入对象的应用程序(如 Excel 或 Word)中。
使控件可插入的步骤
单击“外观”以打开“外观”页。
选中“可插入”复选框。
对象显示的多边形将具有纯色填充色,因此必须添加 Fill Color
常用属性。
添加填充色常用属性并创建控件的步骤
单击“常用属性”,打开“常用属性”页。
在“不受支持的项”下,向下滚动浏览可能的常用属性的列表。 选择
Fill Color
并单击向上箭头,将其移动到“受支持的项”列表。选择“完成”。
当向导创建控件时,会进行多个代码更改和文件添加操作。 创建了以下文件:
文件 | 说明 |
---|---|
PolyCtl.h | 包含 C++ 类 CPolyCtl 的大多数实现。 |
PolyCtl.cpp | 包含 CPolyCtl 的其余部分。 |
PolyCtl.rgs | 一个文本文件,其中包含用于注册控件的注册表脚本。 |
PolyCtl.htm | 一个网页,其中包含对新创建的控件的引用。 |
该向导还进行了以下代码更改:
将
#include
语句添加到预编译的头文件,以包括支持控件所需的 ATL 文件。更改 Polygon.idl 以包括新控件的详细信息。
将新控件添加到 Polygon.cpp 中的对象映射。
现在,可以生成控件以查看其实际运行情况。
生成和测试控件
生成并测试控件
在“生成”菜单上,单击“生成多边形”。
控件生成完成后,右键单击“解决方案资源管理器”中的 PolyCtl.htm 并选择“在浏览器中查看”。 将显示包含控件的 HTML 网页。 应会看到包含标题“对象 PolyCtl 的 ATL 8.0 测试页”和控件(文本 PolyCtl)的页面。
注意
如果控件不可见,则你要知道,某些浏览器需要调整设置才能运行 ActiveX 控件。 请参阅浏览器的文档,了解如何启用 ActiveX 控件。
注意
完成本教程时,如果收到无法创建 DLL 文件的错误消息,请关闭 PolyCtl.htm 文件和 ActiveX 控件测试容器,然后再次生成解决方案。 如果仍无法创建 DLL,请重启计算机,或注销(如果使用的是终端服务)。
接下来,你将向控件添加自定义属性。