Utilizzo di un contesto di dispositivo integro
Se si è assolutamente certi che il controllo non dipinge all'esterno del relativo rettangolo client, è possibile realizzare un piccolo ma rilevabile guadagno di velocità disabilitando la chiamata a IntersectClipRect
che viene effettuata da COleControl
. A tale scopo, rimuovere il flag clipPaintDC dal set di flag restituiti da COleControl::GetControlFlags. Ad esempio:
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}
Il codice per rimuovere questo flag viene generato automaticamente se si seleziona l'opzione Contesto di dispositivo senza clip nella pagina Controllo Impostazioni, quando si crea il controllo con la Creazione guidata controllo ActiveX MFC.
Se si usa l'attivazione senza finestra, questa ottimizzazione non ha alcun effetto.