Utilisation d'un contexte de périphérique non découpé
Si vous êtes absolument certain que votre contrôle ne peint pas en dehors de son rectangle client, vous pouvez réaliser un gain de vitesse petit mais détectable en désactivant l’appel à IntersectClipRect
celui-ci est effectué par COleControl
. Pour ce faire, supprimez l’indicateur clipPaintDC de l’ensemble d’indicateurs retourné par COleControl ::GetControlFlags. Par exemple :
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}
Le code permettant de supprimer cet indicateur est généré automatiquement si vous sélectionnez l’option Contexte d’appareil non sélectionné dans la page Contrôle Paramètres, lors de la création de votre contrôle avec l’Assistant Contrôle ActiveX MFC.
Si vous utilisez l’activation sans fenêtre, cette optimisation n’a aucun effet.