Поделиться через


Использование необрезанного контекста устройства

Если вы абсолютно уверены, что ваш элемент управления не красит вне прямоугольника клиента, вы можете реализовать небольшое, но обнаруживаемое увеличение скорости, отключив вызов IntersectClipRect , сделанный COleControlэтим. Для этого удалите флаг clipPaintDC из набора флагов, возвращаемых COleControl::GetControlFlags. Например:

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

Код для удаления этого флага создается автоматически при выборе параметра контекста неотрезанного устройства на странице "Элемент управления Параметры" при создании элемента управления с помощью мастера управления ActiveX MFC.

Если вы используете активацию без окон, эта оптимизация не влияет.

См. также

Элементы ActiveX в MFC. Оптимизация