Grafikobjekte
Windows bietet eine Reihe von Zeichentools an, die in Gerätekontexten verwendet werden können. Es bietet Stifte zum Zeichnen von Linien, Pinsel zum Auffüllen von Innenbereichen und Schriftarten zum Zeichnen von Text. MFC stellt Grafikobjektklassen bereit, die den Zeichentools in Windows ähneln. In der folgenden Tabelle werden die verfügbaren Klassen und die entsprechenden Windows-GDI-Handletypen (Graphics Device Interface) gezeigt.
Hinweis
Weitere Informationen finden Sie in der GDI+ SDK-Dokumentation.
Dieser Artikel beschreibt die Verwendung von diesen Grafikobjektklassen:
Klassen für Windows-GDI-Objekte
Klasse | Windows-Handletypen |
---|---|
CPen | HPEN |
CBrush | HBRUSH |
CFont | HFONT |
CBitmap | HBITMAP |
CPalette | HPALETTE |
CRgn | HRGN |
Hinweis
Die Klasse CImage bietet erweiterte Bitmapunterstützung.
Jede Grafikobjektklasse in der Klassenbibliothek verfügt über einen Konstruktor, mit dem Sie grafische Objekte dieser Klasse erstellen können. Diese müssen Sie anschließend mit der entsprechenden „create“-Funktion wie CreatePen
initialisieren.
Jede Grafikobjektklasse in der Klassenbibliothek verfügt über einen „cast“-Operator, der ein MFC-Objekt zum zugehörigen Windows-Handle umwandelt. Das resultierende Handle ist gültig, bis das zugeordnete Objekt es trennt. Verwenden Sie die Memberfunktion des Detach
Objekts, um das Handle zu trennen.
Im folgenden Code wird ein CPen
-Objekt zu einem Windows-Handle umgewandelt:
CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255, 255, 0));
HPEN hMyPen = (HPEN)myPen;
So erstellen Sie ein Grafikobjekt in einem Gerätekontext
Definieren Sie ein Grafikobjekt im Stapelrahmen. Initialisieren Sie das Objekt mit der „type“-spezifischen „create“-Funktion wie
CreatePen
. Initialisieren Sie alternativ das Objekt im Konstruktor. Sehen Sie sich die Diskussion über die einstufige und zweistufige Erstellung an, die Beispielcode bereitstellt.Wählen Sie das Objekt im aktuellen Gerätekontext aus, und speichern Sie das alte Grafikobjekt, das zuvor ausgewählt wurde.
Wenn Sie mit dem aktuellen Grafikobjekt fertig sind, wählen Sie das alte Grafikobjekt zurück im Gerätekontext aus, um dessen Status wiederherzustellen.
Ermöglichen Sie dem „frame“-zugewiesenen Grafikobjekt, automatisch gelöscht zu werden, wenn der Bereich verlassen wird.
Hinweis
Wenn Sie ein Grafikobjekt wiederholt verwenden, können Sie es einmal zuordnen und es im Gerätekontext auswählen, sobald es benötigt wird. Stellen Sie sicher, ein derartiges Objekt zu löschen, wenn Sie es nicht mehr benötigen.