contextes de périphérique
Un contexte de périphérique est une structure de données windows qui contient des informations sur les attributs de dessin d'un périphérique tels qu'une vue ou une imprimante. Tous les appels de dessin sont effectuées via un objet contexte de périphérique, qui encapsule les API Windows pour ajouter des lignes, des formes, et texte. Les contextes de périphérique permettent des dessin indépendants 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 CPaintDC encapsulent l'idiome commun Windows, appelant ainsi la fonction BeginPaint, puis dessinant dans le contexte de périphérique, puis appelant la fonction EndPaint. Le constructeur d' CPaintDC appelle BeginPaint pour vous, et le destructeur appelle EndPaint. Le processus simplifié est de créer l'objet CDC, le dessiner, puis détruit l'objet CDC. Dans l'infrastructure, une grande partie de ce processus est automatisée. En particulier, votre fonction d' OnDraw est passée CPaintDC déjà préparé (via OnPrepareDC), et vous dessinez simplement dans celle-ci. Il est détruit par l'infrastructure et le contexte sous-jacent de périphérique est libéré vers windows sur le retour de l'appel à la fonction d' OnDraw.
les objets CClientDC encapsulent et utilisent un contexte du périphérique qui représente uniquement la zone client d'une fenêtre. Le constructeur CClientDC appelle la fonction GetDC, et les destructeurs appellent la fonction ReleaseDC. les objets CWindowDC encapsulent un contexte du périphérique qui représente la fenêtre entière, y compris son cadre.
les objets CMetaFileDC encapsulent le dessin dans un métafichier Windows. Contrairement à CPaintDC passé à OnDraw, vous devez dans ce cas appeler OnPrepareDC vous-même.
Dessin à la souris
La plupart des dessins dans un programme de mise en page — et donc la plupart des travaux de contexte de périphérique — s'effectue dans la fonction membre de la vue de OnDraw. Toutefois, vous pouvez encore utiliser des objets contexte de périphérique à d'autres fins. Par exemple, pour fournir des commentaires de suivi pour le mouvement de la souris dans une vue, vous devez dessiner directement dans la vue sans attendre que OnDraw soit appelé.
Dans ce cas, vous pouvez utiliser un objet contexte de périphérique d' CClientDC pour ajouter directement dans la vue.