MFC ActiveX 控件

来源:互联网 发布:物业不让封阳台 知乎 编辑:程序博客网 时间:2024/05/16 00:44

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 控件

  • 了解的 Activex 控件

  • 升级在 Internet 要使用的现有的 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 控件

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三岁儿童口吃怎么办 3岁儿童口吃怎么办 流产了怀不上宝宝怎么办 产妇脸上长斑怎么办 宝贝肚子涨气怎么办 七个月宝宝便秘怎么办 宝宝功能性便秘怎么办 苹果x手机卡了怎么办 宝宝不吃水果蔬菜怎么办 小宝宝不拉粑粑怎么办 小宝宝个子不高怎么办 孩子不开口说话怎么办 孩子吹空调发烧怎么办 孩子上学不想上怎么办 孩子上学想留级怎么办 孩子口算太慢怎么办 孩子浮躁没耐心怎么办 如果孩子打妈妈怎么办 孩子英语成绩不好怎么办 小孩说话发音不准怎么办 小孩gk发音不准怎么办 大学无英语基础怎么办 孩子应用题理解不透怎么办 嫉妒一个人好痛苦怎么办 爱嫉妒别人怎么办心理 总有人嫉妒我怎么办 从小嫉妒闺蜜怎么办 怕闺蜜比我好怎么办 孩子不会做应用题怎么办 当你嫉妒别人怎么办 单位社保发票丢失怎么办 单位医保发票丢失怎么办 图书明细没有给怎么办 拼音拼不到一起怎么办 孩子不会拼拼音怎么办 小孩子不会拼拼音怎么办 小孩拼音发音不准怎么办 孩子声调不会标怎么办 孩子拼音发音不准怎么办 孩子学拼音不会怎么办? 孩子不会拼生字怎么办?