使用mfc开发activex(ocx)控件.docxVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作者: 中国电波传播研究所青岛分所 郎锐 时间: 2004-03-09 出处: yesky 一、前言 二、建立工程框架 三、属性、方法以及事件的添加 四、实现属性表 五、在包容程序中使用 ActiveX 控件 六、小结 、 、- 前言 ActiveX 控件是一种实现了一系列特定接口而使其在使用和外观上更象一 个控件的COM组件。ActiveX控件这种技术涉及到了几乎所有的 COM和OLE的技 术精华,如可链接对象、统一数据传输、 OLE文档、属性页、永久存储以及 OLE 自动化等。 ActiveX 控件作为基本的界面单元,必须拥有自己的属性和方法以适合不 同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的 IDispatch 接口来支持。除了属性和方法外, ActiveX 控件还具有区别于自动化 服务的一种特性 -- 事件。事件指的是从控件发送给其包容程序的一 种通知。与 窗口控件通过发送消息通知其拥有者类似, ActiveX 控件是通过触发事件来通知 其包容器的。事件的触发通常是通过控件包容器提供的 IDispatch 接口来调用 自动化对象的方法来实现的。 在设计 ActiveX 控件时就应当考虑控件可能会发生 哪些事件以及包容器程序将会对其中的哪些事 件感兴趣并将这些事件包含进来。 与自动化服务不同,ActiveX控件的方法、属性和事件均有自定义(custom)和 库存(stock )两种不同的类 型。自定义的方法和属性也就是是普通的自动化方 法和属性,自定义事件则是自己选取名字和 Dispatch ID 的事件。而所谓的库存 方法、属性和事件则是使用了 ActiveX 控件规定了名字和 Dispatch ID 的标准 方法、属性和事件。 ActiveX控件可以使COM件从外观和使用上能与普通的窗口控件一样, 而且还提供了类似于设置Win dows标准控件属性的属性页,使其能够在包 容器 程序的设计阶段对 ActiveX 控件的属性进行可视化设置。 ActiveX 控件提供的这 些功能使得对其的使用将是非常方便的。本文下面即以 MFC为工 具对ActiveX 控件的开发进行介绍。 建立工程框架 通过MFC ActiveX Co ntrolWizard 向导可以非常容易的建立一个 MFC ActiveX 控件工程框架。按照默认的选项将建立如图 1 所示的工程结构: E 3^ Samjlc6? classcsj y _DSample68 _DS0mple68Events $ ■ * CSample68App ■ Exilln stance [) InitlnstanceQ 曰CSample68Ctrl .CSampleESCtrlQ 铀 ~CSample68CtrlQ f - DoPropExchangefCPr( .OfiDraw(CDC *pdc, cor $ OnReseiStatEf) 曰 H CSampleGOPropPage CSample6SPropP^gef] 询 DoDa1aExchange(CDa 白◎ Globals DIIRegisterServerO i 勒 DllUnregisterServerQ ◎ IIO_DSampieGtt 9 tllcApp 图1使用缺省选项建立的ActiveX控件工程结构 其中,_DSample68和_DSample68Events这两个接口将为客户程序提供本控 件的属性、方法以及可能响应的事件。全局函数 DIIRegisterServer ()和 DIIU nregisterServer ()分别用于控件在注册表的注册和注销,一般不需要对 其进行改动。 应用程序类从 COIeControIModuIe继承。而COIeControIModuIe有是从 CWin App派生,提供了初始化控件模块的功能。 CSample68PropPage的基类是 COIePropertyPage,CDialog类的派生类,主要负责对属性页中对图形界面下用 户控件属性 的显示。控件类CSampIe68CtrI类是这几个类中比较重要的一个类, 大部分实质性工作都在该类完成,其基类为COIeControl,从CWnd和CCmdTarget 继承,因此能够为控件对象提供与MFC窗口对象相同的功能同时也提供了一系列 事件触发函数和一个分发映射表,使 ActiveX控件能够同包容器程序有效地进 行交互。该类的派生类将可以在满足特定的条件时向控件的包容器发送消息或是 触发事件,以通知包容器程序在控件内有一些重要的事件 发生。分发映射表是 其中很重要的一个部分,负责向包容器程序暴露控件提供的方法和属性。图 2 展示了 COIeControl类在控件与包容器通信中所起的作 用。可以看出

文档评论(0)

fengbaozheng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档