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