添加控件(ATL 教程,第 2 部分)

在此步骤中,我们将控件添加到项目、生成控件,并在网页上对其进行测试。

过程

将对象添加到 ATL 项目的步骤

  1. 在“解决方案资源管理器”中,右键单击“Polygon”项目。

  2. 指向快捷菜单上的“添加”,然后单击子菜单中的“新建项”。

    “添加新项” 对话框随即出现。 左侧树结构中列出了不同的对象类别。

  3. 单击 ATL 文件夹。

  4. 从右侧的模板列表中,选择“ATL 控件”。 单击“添加” 。 ATL 控件向导会打开,你可以配置控件。

  5. 键入 PolyCtl 作为短名称,注意其他字段会自动完成。 请勿单击“完成”,因为必须进行更多更改。

ATL 控件向导的“名称”页包含以下字段:

字段 目录
短名称 为控件输入的名称。
为实现控件而创建的 C++ 类名称。
.h 文件 创建的用于包含 C++ 类的定义的文件。
.cpp 文件 创建的用于包含 C++ 类的实现的文件。
CoClass 此控件的组件类的名称。
Interface 控件将在其上实现其自定义方法和属性的接口的名称。
类型 控件的说明。
编程 ID 可用于查找控件 CLSID 的可读名称。

在 ATL 控件向导中,你会发现必须更改多个其他设置。

启用对丰富错误信息和连接点的支持的步骤

  1. 单击“选项”以打开“选项”页。

  2. 选中“连接点”复选框。 此选项在 IDL 文件中创建对传出接口的支持。

还可以添加接口以扩展控件的功能。

扩展控件的功能的步骤

  1. 单击“接口”打开“接口”页。

  2. 选择 IProvideClassInfo2 并单击向上箭头,将其移动到“受支持的项”列表。

  3. 选择 ISpecifyPropertyPages 并单击向上箭头,将其移动到“受支持的项”列表。

还可以使控件可插入,这意味着它可嵌入到支持嵌入对象的应用程序(如 Excel 或 Word)中。

使控件可插入的步骤

  1. 单击“外观”以打开“外观”页。

  2. 选中“可插入”复选框。

对象显示的多边形将具有纯色填充色,因此必须添加 Fill Color 常用属性。

添加填充色常用属性并创建控件的步骤

  1. 单击“常用属性”,打开“常用属性”页。

  2. “不受支持的项”下,向下滚动浏览可能的常用属性的列表。 选择 Fill Color 并单击向上箭头,将其移动到“受支持的项”列表。

  3. 选择“完成”。

当向导创建控件时,会进行多个代码更改和文件添加操作。 创建了以下文件:

文件 说明
PolyCtl.h 包含 C++ 类 CPolyCtl 的大多数实现。
PolyCtl.cpp 包含 CPolyCtl 的其余部分。
PolyCtl.rgs 一个文本文件,其中包含用于注册控件的注册表脚本。
PolyCtl.htm 一个网页,其中包含对新创建的控件的引用。

该向导还进行了以下代码更改:

  • #include 语句添加到预编译的头文件,以包括支持控件所需的 ATL 文件。

  • 更改 Polygon.idl 以包括新控件的详细信息。

  • 将新控件添加到 Polygon.cpp 中的对象映射。

现在,可以生成控件以查看其实际运行情况。

生成和测试控件

生成并测试控件

  1. 在“生成”菜单上,单击“生成多边形”

    控件生成完成后,右键单击“解决方案资源管理器”中的 PolyCtl.htm 并选择“在浏览器中查看”。 将显示包含控件的 HTML 网页。 应会看到包含标题“对象 PolyCtl 的 ATL 8.0 测试页”和控件(文本 PolyCtl)的页面。

注意

如果控件不可见,则你要知道,某些浏览器需要调整设置才能运行 ActiveX 控件。 请参阅浏览器的文档,了解如何启用 ActiveX 控件。

注意

完成本教程时,如果收到无法创建 DLL 文件的错误消息,请关闭 PolyCtl.htm 文件和 ActiveX 控件测试容器,然后再次生成解决方案。 如果仍无法创建 DLL,请重启计算机,或注销(如果使用的是终端服务)。

接下来,你将向控件添加自定义属性。

返回到第 1 步 | 转到第 3 步

另请参阅

教程