使用未修复的设备上下文

如果绝对确定控件不在其客户端矩形外部绘制,可以通过禁用对客户端矩形的COleControl调用IntersectClipRect来实现小但可检测的速度提升。 为此,请从 COleControl::GetControlFlags 返回的标志集中删除 clipPaintDC 标志。 例如:

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

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

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

另请参阅

MFC ActiveX 控件:优化