使用未剪辑的设备上下文

如果您完全确定您的控件不会在其客户端矩形的外部进行绘制,则可以通过禁用对由 IntersectClipRect 创建的 COleControl 的调用来实现较小但可检测到的增速。 为此,请从 COleControl::GetControlFlags 返回的一组标志中删除 clipPaintDC 标志。 例如:

DWORD CMyAxOptCtrl::GetControlFlags()
{
   DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}

在使用 MFC ActiveX 控件向导创建控件时,如果选择控件设置页上的“未剪辑的设备上下文”选项,则会自动生成用于删除此标志的代码

如果使用无窗口激活,则此优化不起作用。

另请参阅

MFC ActiveX 控件:优化