COleControl
OLE控件的功能
COleControl类是一个开发OLE控件的功能强大的基类。它由CWnd类派生,继承了Windows窗口对象的所有功能,并加上了OLE独有的功能,例如事件触发、支持方法和特性等。
简介
OLE控件可以插入到OLE包容器中,并通过事件触发和包容器引发方法和特性的双向系统相互通讯和联系。注意,标准的OLE包容器仅支持OLE控件的基本功能,而不支持OLE控件的扩展特性。当在控件中采取某个动作,就会向包容器发出一个事件,称为事件触发。相反,包容器引发一系列的类似于C++类的成员函数数据成员的方法和特性来与控件进行通讯。这种方法使开发者可以控制控件的外观,并在产生某些动作时通知包容器。
作用
无窗口控件
OLE控件可在没有窗口的情况下使用。无窗口控件是十分有用的:
·无窗口控件可以是透明和无形的。
·无窗口控件减小了实例的尺寸和创建对象的时间。
控件并不需要窗口。一个窗口提供的服务可以容易地通过一个单一的共享窗口(通常是包容器的)和分派码的一位来提供。有一个窗口通常使对象的复杂度增加。
当使用无窗口激活时,包容器(它有一个窗口)将负责提供本来应由控件自己的窗口提供的服务。例如,如果你的控件需要查询键盘输入焦点、查询鼠标位置或获取一个设备上下文等,都由包容器来提供支持。
COleControl无窗口操作成员函数将调用包容器上的这些操作。
当不能使用无窗口激活时,包容器会向控件的IOleInPlaceObjectWindowless界面(支持无窗口的IOleInPlaceObject的扩展)发送输入消息。在适当调整鼠标坐标后,COleControl实现这些该界面时通过控件的消息映射图分派这些消息。可以通过增加消息映射图的入口点,同处理普通的窗口消息一样处理这些消息。
在无窗口控件中,通常需要使用COleControl成员函数来代替相应的成员函数或相关的Windows API函数。
只有在OLE控件对象活动时,它们也能创建窗口。但是对象进行不活动-活动切换的工作量增大,速度也会下降。这可能会引发一些问题:
例如在文本框的栅格中,当光标在列间上下移动时,每个控件都先被就地激活,然后取消。这样不活动/活动切换的速度将直接影响滚动的速度。
#include
COleControl类的成员
构造函数/析构函数
初始化
控件修改函数
更新/绘画函数
分派异常
环境属性函数
事件触发函数
标准方法和属性
OLE控件的尺寸函数
OLE数据绑定函数
简单框架函数
OLE控件位置函数
无窗口操作
非活动指针处理函数
异步控制函数
可覆盖的函数
可覆盖的函数
改变通知函数
OLE界面通知函数
可覆盖的IViewObject界面通知函数
就地激活函数
属性浏览函数
参考资料
最新修订时间:2022-10-27 20:18
目录
概述
简介
作用
参考资料