MFC ActiveX 控件

ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,它支持广泛的 OLE 功能并可自定义以满足多种软件的需要。Activex 控件旨在用于普通的 Activex 控件容器和在 Internet,万维网页。可以创建 Activex 控件使用 MFC,所述,还是以 活动模板库 (atl) (ATL)

Activex 控件可以自行绘制在各自的窗口,以响应事件 (例如鼠标单击) 并传入自动化对象包含属性和方法类似于的接口管理。

这些控件中开发用于许多使用,例如数据库访问,数据监视或关系图。除了它们的可移植性外, Activex 控件之前支持功能不可用的 Activex 控件,如使用现有的 OLE 容器的兼容性和能够整合其与 OLE 容器菜单的菜单。此外, Activex 控件完全支持自动化,允许控件显示读取 \ 编写属性和 set 方法可以通过控件用户调用。

可以创建只创建一个窗口的无窗口的 Activex 控件和控件,而变为活动状态时。无窗口控件加快应用程序显示并可以具有透明和矩形控件。您也可以加载 Activex 控件的属性异步。

Activex 控件实现为可以用于任何 OLE 容器的进程内服务器 (通常是小对象)。请注意 Activex 控件的全部功能可用,仅当在中设计的一个 OLE 容器中了解 Activex 控件。支持 Activex 控件容器的列表参见 端口对于其他应用程序的 Activex 控件 。通过使用控件的属性和方法,用事件的形式,此容器类型,此后称为 “控件容器,”可以运行 Activex 控件,并接收来自 Activex 控件的通知。下图演示此交互。

ActiveX 控件容器与有窗口的 ActiveX 控件之间的交互

ActiveX 控件交互

有关优化您的 Activex 控件的一些最新信息,请参见 MFC Activex 控件:优化

若要创建 MFC Activex 控件,请参见 创建一个 Activex 控件项目

有关更多信息,请参见:

Activex 控件的基本组件

Activex 控件使用多种编程元素有效地交互控件容器和与用户。这些是类 COleControl,将事件激发功能和计划映射。

您开发的每个 Activex 控件对象继承一组强大从其 MFC 基类的功能, COleControl。这些功能包括就地激活和自动化逻辑。COleControl 可以提供控件对象与函数和一个 MFC windows 对象相同,以及能够激发事件。COleControl 还可以提供 无窗口控件,依赖它们的帮助的容器具有某些功能窗口提供 (鼠标捕获,键盘焦点,移动),但是,提供更快的显示。

由于控件类从 COleControl派生,它继承函数发送或 “",”消息,调用事件,以便控件容器,如果某些满足条件时。,当重要的操作在控件时,发生这些事件用于通知控件容器。可以发送有关事件的其他信息传递给控件容器通过附加参数到事件。有关 Activex 控件事件的更多信息,请参见中的文章 MFC Activex 控件:事件

最后一个元素为计划映射,用于显示设置函数 (调用方法) 和属性 (称为特性) 在用户控件。属性允许控件容器或控件用户操作控件以多种方式。用户可以更改控件的外观,控件的某些值或发出请求控件,如访问控件维护数据的特定部分。控件开发人员取决于所使用 类视图,该接口和定义。有关 Activex 控件方法和属性的更多信息,请参见位于 MFC Activex 控件:方法属性

控件与窗口和 Activex 控件容器之间的交互

当控件位于控件容器中时,它使用两个结构通信:它显示属性和方法,因此,它激发事件。下图演示了这两种机制的实现方式。

ActiveX 控件容器与 ActiveX 控件之间的通信

通信 ActiveX 控件和容器 ActiveX 控件

上图还阐释其他 OLE 接口 (除了自动和事件外) 如何通过控制。

所有与容器的控件的通信由 COleControl执行。处理一些容器的请求, COleControl 将调用控件类实现的成员函数。所有方法和一些属性中的过程。控件的类可以通过调用 COleControl的成员函数来启动与容器的通信。事件以此方式触发。

Activex 控件的活动和非活动状态。

控件有两种基本状态:活动和非活动。传统上,这些状态区分控件是否具有窗口。一个有效的控件具有一个窗口;非活动控件上。无窗口中启动的介绍,此差异不再是泛型的,因此,但仍适用于许多控件。

无窗口控件 转到激活时,将会调用鼠标捕获、键盘焦点、滚动和其他 windows 服务从其容器。还可以 提供鼠标交互非活动控件,以及创建 等到创建窗口激活的控件。

在使用窗口的控件变为活动状态时,可以使用控件容器、用户和窗口是完全交互。下面的图演示通信路径 Activex 控件、控件容器和操作系统之间的。

有窗口的 ActiveX 控件中的 Windows 消息处理(活动时)

有窗口的 ActiveX 控件(活动)中的 Win 消息处理

序列化

能够序列化数据,有时称为持久性,提供控件编写其属性的值设置为永久存储。控件通过读取存储的对象的状态然后重新创建。

请注意控件为获取对存储媒介的访问不负责。相反,控件的容器对提供控件负责以存储媒介使用在适当的时间。有关序列化的更多信息,请参见中的文章 MFC Activex 控件:序列化。有关优化序列化的信息,请参见在 Activex 控件中 优化持久性和初始化 :优化。

安装 Activex 控件类和工具

当安装 Visual C++ 时, MFC Activex 控件类和发布和调试会自动安装运行时 DLL 的 Activex 控件,如果 Activex 控件在默认情况下设置 (它们是将选择选项)。

默认情况下, Activex 控件类和工具在下面的子目录中安装在 \ program files \ Microsoft Visual Studio .NET:

  • \ Common7 \ tools

    包含测试容器文件 (TstCon32.exe,以及它帮助文件)。

  • \ Vc7 \ atlmfc \ include

    包含必要的包含文件开发与 MFC Activex 控件

  • \ Vc7 \ atlmfc \ \ MFC src

    在 MFC 包含特定 Activex 控件类的源代码

  • \ Vc7 \ atlmfc \ lib

    包含要求的库开发与 MFC Activex 控件

还具有 MFC Activex 控件的示例。有关这些示例的更多信息,请参见 控件示例:基于 MFC 的 Activex 控件

请参见

其他资源

用户界面