MFC ActiveX 控件:优化

本文说明可以使用优化您的性能更佳的 Activex 控件的技术。

主题 关闭活动,当显示选项提供鼠标交互,当非活动任务时 讨论不创建直到激活的窗口的控件。主题 提供无窗口的启动 讨论不创建一个窗口的控件,因此,即使激活它们。

窗口有 OLE 对象的两个主要缺点:激活时,及其添加大开销到控件时,实例化并显示它们以防止对象透明或矩形。通常,创建 windows 花费有超过控件的创建时间。单个共享的窗口 (通常容器的) 和某些计划的代码,控件来获取相同的 windows 服务,通常,不用性能降低。具有窗口是对象的主要不必要的系统开销。

,当您的控件用于某些容器时,这些优化不一定提高性能。例如,在 1996 之前释放的容器不支持无窗口的启动,因此,实现此功能无法提供旧的容器的一个优点。但是,几乎每个容器支持持续时间,因此,优化控件的持久性代码可能会提高其在任何容器的性能。如果控件专用于使用与容器的特定类型,您可能希望搞清楚哪些优化由该容器支持。但是,通常,应尝试实现许多这些技术与适用于您的特定控件确保您的控件相同运行良好,也是在大多数容器也可以。

可以通过 MFC Activex 控件向导实现许多这些优化,在 控件设置 页。

MFC Activex 控件向导 OLE 优化选项

控件将 MFC Activex 控件向导

操作

更多信息

Activate when visible 复选框

Clear

关闭活动,当显示选项

Windowless activation 复选框

Select

提供无窗口的启动

Unclipped device context 复选框

Select

使用非) 的设备上下文

Flicker-free activation 复选框

Select

提供无闪烁的启动

Mouse pointer notifications when inactive 复选框

Select

提供鼠标交互,当非活动任务时

Optimized drawing code 复选框

Select

最佳控件绘制

有关实现这些优化的成员函数的详细信息,请参见 COleControl。成员函数由使用列表,例如 无窗口操作。处理函数的非活动指针

有关更多信息,请参见:

请参见

概念

MFC ActiveX 控件