À l'aide d'un contexte Unclipped de périphérique
Si vous êtes absolument certain que votre contrôle ne peigne pas en dehors de son rectangle client, vous pouvez exécuter un petit mais décelable gain de rapidité en désactivant l'appel à IntersectClipRect passé par COleControl.Pour ce faire, supprimez la balise de clipPaintDC du jeu de balises retournées par COleControl::GetControlFlags.Par exemple :
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
...
dwFlags &= ~clipPaintDC;
...
return dwFlags;
}
Le code pour supprimer cette balise est généré automatiquement si vous sélectionnez l'option d' Unclipped Device Context dans la page de paramètres de contrôle , en créant votre contrôle avec l'Assistant Contrôle ActiveX MFC.
Si vous utilisez l'activation sans fenêtre, cette optimisation n'a aucun effet.