Contextes de périphérique
Un contexte de périphérique est une structure de données windows contenant des informations sur les attributs de dessin d'un périphérique tel qu'un écran ou une imprimante.Tous les appels de dessin sont effectués par l'intermédiaire d'un objet contexte de périphérique, qui encapsule les API Windows pour dessiner des lignes, des formes, et le texte.Les contextes de périphérique permettent le dessin indépendant du périphérique dans windows.Les contextes de périphérique peuvent être utilisés pour dessiner à l'écran, l'imprimante, ou à un métafichier.
Les objets deCPaintDC encapsulent l'idiome de partager des fenêtres, appelant la fonction de BeginPaint , le dessin dans le contexte de périphérique, puis appelant la fonction de EndPaint .Le constructeur d' CPaintDC appelle BeginPaint pour vous, et le destructeur appelle EndPaint.Le processus simplifié est de créer l'objet de CDC , puis dessine détruit l'objet d' CDC .Dans l'infrastructure, de nombreuses même de ce processus est automatisé.En particulier, la fonction d' OnDraw est passée CPaintDC déjà préparé (via OnPrepareDC), et vous dessinez simplement dedans.Il est détruit par l'infrastructure et le contexte sous-jacent de périphérique est libéré windows lors de le retour de l'appel à la fonction d' OnDraw .
Les objets deCClientDC encapsulent utiliser un contexte de périphérique qui représente uniquement la zone cliente d'une fenêtre.Le constructeur d' CClientDC appelle la fonction d' GetDC , et les appels de destructeur la fonction d' ReleaseDC .Les objets deCWindowDC encapsulent un contexte de périphérique qui représente la fenêtre entière, y compris son frame.
Les objets deCMetaFileDC encapsulent le dessin dans un métafichier windows.Contrairement à CPaintDC passé à OnDraw, vous devez dans ce cas appeler OnPrepareDC vous-même.
Dessin de la souris
La plupart de dessin dans un plan maître (et donc la plupart de travail de périphérique-contexte — est effectué dans la fonction membre d' OnDraw de la vue.Toutefois, vous pouvez toujours utiliser des objets contexte de périphérique à d'autres fins.Par exemple, pour fournir des informations de traçage pour le déplacement de la souris dans une vue, vous devez dessiner directement dans la vue sans OnDraw en attente à appeler.
Dans ce cas, vous pouvez utiliser un objet contexte de périphérique de CClientDC pour dessiner directement dans la vue.