欢迎来到天天文库
浏览记录
ID:39469596
大小:50.00 KB
页数:6页
时间:2019-07-04
《VC随笔ActiveX控件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC随笔ActiveX控件ActiveX、OLE和COM:COM(ComponentObjectModel)即组件对象模型是用来解决Windows程序模块之间相互通信的标准方法,是Windows统一的、可扩充的、面向对象的通信协议。COM是一种协议,建立了一个软件模块同另一个软件模块之间的连接,然后将其描述出来。当这种连接建立起来后,两个软件模块之间就可以通过一个称为“接口”的机制来进行通信。OLE(ObjectLinking&Embedded)是指对象的链接与嵌入技术。是可嵌入的组件对象模型(COM),它是作为一个
2、进程中的服务器的动态链接库来实线的。(可以将被使用的控件称为服务器,而使用控件的应用程序就是客户程序或者容器程序。)虽然OLE控件是通过DLL来实现的,但不仅止于此。OLE控件还是一个独立的对象,它可以激起和响应事件、处理消息,它具有唯一的属性,并且它有多线程能力。OLE控件不能独立存在,需要嵌入到容器中去。ActiveX控件是在其他应用程序中可以使用的,而且与应用程序无关的小型动态链接库,是OLE控件的子集。能够用于Internet应用程序,当然也可以运行在非Internet应用程序中。和普通的Windows控件一
3、样,ActiveX控件也是一个子窗口,通常是对话框的子窗口。包含ActiveX控件的窗口称为包容器。(1)如果要在对话框中加入一个ActiveX控件,和加入一个普通的Windows控件一样,只要在对话框编辑器中,将ActiveX控件放在适当的位置,并在资源模板中表示该ActiveX控件即可。(2)如果要在程序中动态地建立ActiveX控件,则可以调用相应类的Create成员函数。ActiveX控件不像普通的控件那样,发送以WM_打头的通知消息给它的包容器窗口,而是“激发事件”。在一般情况下,一个或多个ActiveX控
4、件会保存在一个动态链接库中,但这种动态链接库的文件扩展名通常为OCX,而不是DLL。包容器通过Windows注册表,利用COM技术在需要的时候动态地载入动态链接库。属性、方法和事件:ActiveX控件有三个重要的属性集:属性(Property)、方法(Method)和事件(Event)。作个简单的类比,属性好比成员变量;方法就是成员函数;而事件则允许控件向容器应用程序发送相应的消息。属性是ActiveX控件的特性或特征,用户可以访问或设置这些属性。用户可以定制属性或使用库存属性。ActiveX控件的10个库存属性:A
5、ppearance、BackColor、BorderStyle、Caption、Enabled、Font、ForeColor、hWnd、ReadyState。方法是控件访问其本身功能的函数。能够提供访问ActiveX控件的属性和数据的访问函数。方法可以是库存的也可以是定制的。库存方法可以访问库存属性(颜色、字体等),定制方法可以访问定制属性。对应属性的库存方法分为Get方法和Set方法,如shorGetAppearance()、voidSetAppearance(shortsApear)等。MFC提供了两个库存方法,
6、Doclick方法和Refresh方法。使用Doclick方法可以向容器程序激起一个鼠标敲击事件,使用Refresh方法可以使容器更新控件的外观。事件是控件在响应外部作用时由控件触发的消息。控件利用事件与控件的容器应用程序进行通信。这种通信只能实现单一计算机的进程之间及进程内部的通信。通过IDispatch接口,控件可以向容器发送消息,容器也可以向控件发送消息。MFC也提供了一些库存的事件:Click、DblClick、Error、KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、
7、MouseUp。相应的驱动事件的函数为voidFireClick()等。 组件和控件:组件是具有特定功能的程序模块,通常是符合一定规范的类,用不同语言开发的组件可相互通信。控件可以看成是有形的组件,除属性和方法外,通常还有相应的事件。二者都是能完成一定功能的实体,区别在于控件有一定的形状,一般还有响应事件;组件一般没有形状和事件。 使用ActiveX控件:1、插入ActiveX控件(1)创建使用控件的程序创建一个名为Time的基于对话框的工程,确保在第2步中勾选了ActiveXControls复选框(系统默认设置)。
8、修改对话框的标题为“测试ActiveX控件”。(2)添加日历控件1)单击Project
9、AddtoProject
10、ComponentsandControls菜单项,双击RegisteredActiveXControls目录,插入CalendarControl8.0的日历控件。2)使用默认设置。此时,在对话框编辑窗口右边的控件面板上,在最下面多了
此文档下载收益归作者所有