使用未剪辑的设备上下文
如果您完全确定您的控件不会在其客户端矩形的外部进行绘制,则可以通过禁用对由 IntersectClipRect
创建的 COleControl
的调用来实现较小但可检测到的增速。 为此,请从 COleControl::GetControlFlags 返回的一组标志中删除 clipPaintDC 标志。 例如:
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}
在使用 MFC ActiveX 控件向导创建控件时,如果选择控件设置页上的“未剪辑的设备上下文”选项,则会自动生成用于删除此标志的代码。
如果使用无窗口激活,则此优化不起作用。