Używanie nieobcinanego kontekstu urządzenia
Jeśli masz absolutną pewność, że kontrolka nie maluje poza prostokątem klienta, możesz zrealizować mały, ale wykrywalny przyrost szybkości, wyłączając wywołanie tej IntersectClipRect
funkcji przez COleControl
program . Aby to zrobić, usuń flagę clipPaintDC z zestawu flag zwróconych przez COleControl::GetControlFlags. Przykład:
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}
Kod usuwania tej flagi jest generowany automatycznie po wybraniu opcji Rozpakowywanie kontekstu urządzenia na stronie Kontrola Ustawienia podczas tworzenia kontrolki za pomocą Kreatora formantów ActiveX MFC.
Jeśli używasz aktywacji bez okien, ta optymalizacja nie ma efektu.