Freigeben über


Gerätekontexte

Ein Gerätekontext ist eine Windows-Datenstruktur, die Informationen über die Zeichnungsattribute eines Geräts wie eine Anzeige oder Drucker enthält. Alle Zeichnungsaufrufe werden durch ein Gerätekontextobjekt ausgeführt, sodass Windows-APIs zum Zeichnen von Linien, von Formen und Text kapselt. Gerätekontexte ermöglichen geräteunabhängige Zeichnungen in Windows. Gerätekontexte können verwendet werden, um dem Bildschirm, den Drucker oder auf eine Metadatei zu zeichnen.

CPaintDC kapseln Objekte des allgemeinen Vorgehensweise von Windows, um die Funktion BeginPaint, dann Zeichnung im Gerätekontext auf, und rufen die EndPaint-Funktion auf. Der CPaintDC-Konstruktor ruft BeginPaint für Sie auf, und der Destruktor ruft EndPaint auf. Der vereinfachte Prozess ist, das CDC-Objekt erstellt, gezeichnet und anschließend zerstört das CDC-Objekt. Im Framework wird viel sogar dieses Prozesses automatisiert. Insbesondere der Funktion wird OnDraw bereits vorbereitetes CPaintDC (über OnPrepareDC) übergeben, und Sie zeichnen einfach in es. Es wird durch das Framework zerstört und der zugrunde liegende Gerätekontext wird Windows nach Rückgabe aus dem Aufruf von OnDraw der Funktion freigegeben.

Objekte CClientDC kapseln das Arbeiten mit einem Gerätekontext, der nur den Clientbereich eines Fensters gezeigt. Der CClientDC-Konstruktor ruft die Funktion GetDC und die Destruktoraufrufe die Funktion ReleaseDC auf. CWindowDC kapseln Objekte einem Gerätekontext, der das gesamte Fenster darstellt, einschließlich seiner Frames.

Objekte CMetaFileDC kapseln Zeichnungen eine Windows-Metadatei. Im Gegensatz zu CPaintDC, das an OnDraw übergeben wird, muss OnPrepareDC in diesem Fall selbst aufrufen.

Maus-Zeichnung

Die häufigste Zeichnungen in einem Rahmenprogramm - und somit die meisten Gerätekontextarbeit - ist dies in der Memberfunktion OnDraw der Ansicht. Sie können jedoch Gerätekontextobjekte weiterhin zu anderen Zwecken verwenden. Um beispielsweise für Nachverfolgungsfeedback Mausbewegung in einer Ansicht bereitzustellen, müssen Sie direkt in die Ansicht ohne Warteaufgerufen werden OnDraw, zeichnen.

In einem solchen Fall können Sie ein CClientDC Gerätekontextobjekt verwenden, um direkt in der Ansicht zu zeichnen.

Worüber möchten Sie mehr erfahren?

Siehe auch

Konzepte

Fensterobjekte