Partager via


Contextes courants de l’appareil d’affichage

Un contexte d’appareil commun est utilisé pour dessiner dans la zone cliente de la fenêtre. Le système fournit un contexte d’appareil commun par défaut pour toute fenêtre dont la classe de fenêtre ne spécifie pas explicitement un style de contexte d’appareil d’affichage. Les contextes d’appareil courants sont généralement utilisés avec des fenêtres qui peuvent être dessinées sans modifications importantes apportées aux attributs de contexte de l’appareil. Les contextes d’appareil courants sont pratiques, car ils ne nécessitent pas de ressources système ou de mémoire supplémentaires, mais ils peuvent être gênants si l’application doit configurer de nombreux attributs avant de les utiliser.

Le système récupère tous les contextes d’appareil courants du cache de contexte d’appareil d’affichage. Une application peut récupérer un contexte d’appareil commun immédiatement après la création de la fenêtre. Étant donné que le contexte d’appareil commun provient du cache, l’application doit toujours libérer le contexte de l’appareil dès que possible après le dessin. Une fois le contexte d’appareil commun libéré, il n’est plus valide et l’application ne doit pas tenter de dessiner avec elle. Pour dessiner à nouveau, l’application doit récupérer un nouveau contexte d’appareil commun et continuer à récupérer et à libérer un contexte d’appareil commun chaque fois qu’elle dessine dans la fenêtre. Si l’application récupère le handle de contexte de l’appareil à l’aide de la fonctionGetDC, elle doit utiliser la fonction ReleaseDC pour libérer le handle. De même, pour chaque fonction BeginPaint, l’application doit utiliser une fonction EndPaint correspondante.

Lorsque l’application récupère le contexte de l’appareil, le système ajuste l’origine afin qu’elle s’aligne sur le coin supérieur gauche de la zone cliente. Il définit également la région de découpage afin que la sortie du contexte de l’appareil soit rogné dans la zone cliente. Toute sortie qui s’affiche autrement en dehors de la zone cliente est clippée. Si l’application récupère le contexte d’appareil commun à l’aide de BeginPaint, le système inclut également la région de mise à jour dans la région de découpage pour restreindre davantage la sortie.

Lorsqu’une application libère un contexte d’appareil commun, le système restaure les valeurs par défaut pour les attributs du contexte de l’appareil. Une application qui modifie les valeurs d’attribut doit le faire chaque fois qu’elle récupère un contexte d’appareil commun. La libération du contexte de l’appareil libère tous les objets de dessin que l’application peut avoir sélectionnés, de sorte que l’application n’a pas besoin de libérer ces objets avant de libérer le contexte de l’appareil. Dans tous les cas, une application ne doit jamais supposer que le contexte d’appareil commun conserve les sélections non définie après la publication.