Teilen über


CGdiObject-Klasse

Stellt eine Basisklasse für verschiedene Arten von Objekten der Windows GDI (Graphics Device Interface) wie Bitmaps, Bereiche, Pinsel, Stifte, Paletten und Schriftwarten bereit.

Syntax

class CGdiObject : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CGdiObject::CGdiObject Erstellt ein CGdiObject-Objekt.

Öffentliche Methoden

Name Beschreibung
CGdiObject::Attach Fügt ein Windows GDI-Objekt an ein CGdiObject Objekt an.
CGdiObject::CreateStockObject Ruft einen Handle zu einem der vordefinierten Windows-Stifte, Pinsel oder Schriftarten ab.
CGdiObject::D eleteObject Löscht das dem Objekt zugeordnete Windows GDI-Objekt aus dem CGdiObject Arbeitsspeicher, indem alle dem Objekt zugeordneten Systemspeicher freigegeben werden.
CGdiObject::D eleteTempMap Löscht alle temporären CGdiObject Objekte, die von FromHandle.
CGdiObject::D etach Trennt ein Windows GDI-Objekt von einem CGdiObject Objekt und gibt ein Handle an das Windows GDI-Objekt zurück.
CGdiObject::FromHandle Gibt einen Zeiger auf ein CGdiObject Objekt zurück, das ein Handle auf ein Windows GDI -Objekt erhält.
CGdiObject::GetObject Füllt einen Puffer mit Daten, die das dem Objekt zugeordnete CGdiObject Windows GDI-Objekt beschreiben.
CGdiObject::GetObjectType Ruft den Typ des GDI-Objekts ab.
CGdiObject::GetSafeHandle Gibt zurück m_hObject , es sei denn this , es ist NULL, in diesem Fall WIRD NULL zurückgegeben.
CGdiObject::Unobject Setzt den Ursprung eines Pinsels zurück oder setzt eine logische Palette zurück.

Öffentliche Operatoren

Name Beschreibung
CGdiObject::operator != Bestimmt, ob zwei GDI-Objekte logisch nicht gleich sind.
CGdiObject::operator == Bestimmt, ob zwei GDI-Objekte logisch gleich sind.
CGdiObject::operator HGDIOBJ Ruft ein HANDLE an das angefügte Windows GDI -Objekt ab.

Öffentliche Datenmember

Name Beschreibung
CGdiObject::m_hObject Ein HANDLE, das das an dieses Objekt angefügte HBITMAP-, HPALETTE-, HRGN-, HBRUSH-, HPEN- oder HFONT-Objekt enthält.

Hinweise

Sie erstellen nie direkt.CGdiObject Stattdessen erstellen Sie ein Objekt aus einer der abgeleiteten Klassen, z CPen . B. oder CBrush.

Weitere Informationen CGdiObjectfinden Sie unter Graphic Objects.

Vererbungshierarchie

CObject

CGdiObject

Anforderungen

Header: afxwin.h

CGdiObject::Attach

Fügt ein Windows GDI-Objekt an ein CGdiObject Objekt an.

BOOL Attach(HGDIOBJ hObject);

Parameter

hObject
Ein HANDLE zu einem Windows GDI-Objekt (z. B. HPEN oder HBRUSH).

Rückgabewert

Nonzero, wenn die Anlage erfolgreich ist; andernfalls 0.

CGdiObject::CGdiObject

Erstellt ein CGdiObject-Objekt.

CGdiObject();

Hinweise

Sie erstellen nie direkt.CGdiObject Stattdessen erstellen Sie ein Objekt aus einer der abgeleiteten Klassen, z CPen . B. oder Cbrush.

CGdiObject::CreateStockObject

Ruft ein Handle an einen der vordefinierten Windows GDI-Stifte, Pinsel oder Schriftarten ab und fügt das GDI-Objekt an das CGdiObject Objekt an.

BOOL CreateStockObject(int nIndex);

Parameter

nIndex
Eine Konstante, die den Typ des gewünschten Bestandsobjekts angibt. Eine Beschreibung der geeigneten Werte finden Sie im Parameter fnObject für GetStockObject im Windows SDK.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Rufen Sie diese Funktion mit einer der abgeleiteten Klassen auf, die dem Windows GDI-Objekttyp entsprechen, z CPen . B. für einen Aktienstift.

CGdiObject::D eleteObject

Löscht das angefügte Windows GDI-Objekt aus dem Arbeitsspeicher, indem alle Systemspeicher freigegeben werden, die dem Windows GDI-Objekt zugeordnet sind.

BOOL DeleteObject();

Rückgabewert

Nonzero, wenn das GDI-Objekt erfolgreich gelöscht wurde; andernfalls 0.

Hinweise

Der dem CGdiObject Objekt zugeordnete Speicher ist von diesem Aufruf nicht betroffen. Eine Anwendung sollte kein Objekt aufrufen DeleteObject CGdiObject , das derzeit in einem Gerätekontext ausgewählt ist.

Wenn ein Musterpinsel gelöscht wird, wird die dem Pinsel zugeordnete Bitmap nicht gelöscht. Die Bitmap muss unabhängig voneinander gelöscht werden.

CGdiObject::D eleteTempMap

Wird automatisch vom CWinApp Leerlaufzeithandler aufgerufen, werden alle temporären CGdiObject Objekte gelöscht, DeleteTempMap die von FromHandle.

static void PASCAL DeleteTempMap();

Hinweise

DeleteTempMap trennt das windows GDI-Objekt, das an ein temporäres CGdiObject Objekt angefügt ist, bevor das CGdiObject Objekt gelöscht wird.

Beispiel

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::D etach

Trennt ein Windows GDI-Objekt von einem CGdiObject Objekt und gibt ein Handle an das Windows GDI-Objekt zurück.

HGDIOBJ Detach();

Rückgabewert

A HANDLE an das Windows GDI-Objekt getrennt; andernfalls NULL, wenn kein GDI-Objekt angefügt ist.

CGdiObject::FromHandle

Gibt einen Zeiger auf ein CGdiObject Objekt zurück, das ein Handle auf ein Windows GDI -Objekt erhält.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parameter

hObject
Ein HANDLE zu einem Windows GDI-Objekt.

Rückgabewert

Ein Zeiger auf einen CGdiObject , der vorübergehend oder dauerhaft sein kann.

Hinweise

Wenn ein CGdiObject Objekt noch nicht an das Windows GDI-Objekt angefügt ist, wird ein temporäres CGdiObject Objekt erstellt und angefügt.

Dieses temporäre CGdiObject Objekt ist nur gültig, bis die Anwendung beim nächsten Mal leerlauf in der Ereignisschleife ist, zu der alle temporären Grafikobjekte gelöscht werden. Eine weitere Möglichkeit, dies zu sagen, ist, dass das temporäre Objekt nur während der Verarbeitung einer Fensternachricht gültig ist.

CGdiObject::GetObject

Füllt einen Puffer mit Daten, die ein angegebenes Objekt definieren.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parameter

nCount
Gibt die Anzahl der Bytes an, die in den lpObject-Puffer kopiert werden sollen.

lpObject
Verweist auf einen vom Benutzer bereitgestellten Puffer, der die Informationen empfängt.

Rückgabewert

Die Anzahl der abgerufenen Bytes; andernfalls 0, wenn ein Fehler auftritt.

Hinweise

Die Funktion ruft eine Datenstruktur ab, deren Typ vom Typ des Grafikobjekts abhängt, wie in der folgenden Liste dargestellt:

Objekt Puffertyp
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap BITMAP
CPalette WORD
CRgn Nicht unterstützt

Wenn es sich bei dem Objekt um ein CBitmap Objekt handelt, GetObject werden nur die Informationen zu Breite, Höhe und Farbformat der Bitmap zurückgegeben. Die tatsächlichen Bits können mit CBitmap::GetBitmapBits abgerufen werden.

Wenn es sich bei dem Objekt um ein CPalette Objekt handelt, wird ein WORD abgerufen, GetObject das die Anzahl der Einträge in der Palette angibt. Die Funktion ruft nicht die LOGPALETTE-Struktur ab, die die Palette definiert. Eine Anwendung kann Informationen zu Paletteneinträgen abrufen, indem Sie CPalette::GetPaletteEntries aufrufen.

CGdiObject::GetObjectType

Ruft den Typ des GDI-Objekts ab.

UINT GetObjectType() const;

Rückgabewert

Der Typ des Objekts, falls erfolgreich; andernfalls 0. Der Wert kann in folgenden Formen vorliegen:

  • OBJ_BITMAP Bitmap

  • OBJ_BRUSH Pinsel

  • schriftart OBJ_FONT

  • OBJ_PAL Palette

  • OBJ_PEN Stift

  • OBJ_EXTPEN erweiterter Stift

  • OBJ_REGION Region

  • OBJ_DC Gerätekontext

  • OBJ_MEMDC Speichergerätekontext

  • OBJ_METAFILE Metadatei

  • OBJ_METADC Metafile-Gerätekontext

  • OBJ_ENHMETAFILE Erweiterte Metadatei

  • OBJ_ENHMETADC Erweiterter Metadateigerätekontext

CGdiObject::GetSafeHandle

Gibt zurück m_hObject , es sei denn this , es ist NULL, in diesem Fall WIRD NULL zurückgegeben.

HGDIOBJ GetSafeHandle() const;

Rückgabewert

Ein HANDLE an das angefügte Windows GDI-Objekt; andernfalls NULL, wenn kein Objekt angefügt ist.

Hinweise

Dies ist Teil des allgemeinen Handle-Schnittstellenparadigmas und ist nützlich, wenn NULL ein gültiger oder spezieller Wert für einen Handle ist.

Beispiel

Sehen Sie sich das Beispiel für CWnd::IsWindowEnabled an.

CGdiObject::m_hObject

Ein HANDLE, das das an dieses Objekt angefügte HBITMAP-, HRGN-, HBRUSH-, HPEN-, HPALETTE- oder HFONT-Objekt enthält.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Bestimmt, ob zwei GDI-Objekte logisch nicht gleich sind.

BOOL operator!=(const CGdiObject& obj) const;

Parameter

obj
Ein Zeiger auf ein vorhandenes CGdiObject.

Hinweise

Bestimmt, ob ein GDI-Objekt auf der linken Seite nicht mit einem GDI-Objekt auf der rechten Seite identisch ist.

CGdiObject::operator ==

Bestimmt, ob zwei GDI-Objekte logisch gleich sind.

BOOL operator==(const CGdiObject& obj) const;

Parameter

obj
Ein Verweis auf ein vorhandenes CGdiObject.

Hinweise

Bestimmt, ob ein GDI-Objekt auf der linken Seite einem GDI-Objekt auf der rechten Seite entspricht.

CGdiObject::operator HGDIOBJ

Ruft ein HANDLE an das angefügte Windows GDI-Objekt ab; andernfalls NULL, wenn kein Objekt angefügt ist.

operator HGDIOBJ() const;

CGdiObject::Unobject

Setzt den Ursprung eines Pinsels zurück oder setzt eine logische Palette zurück.

BOOL UnrealizeObject();

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Obwohl UnrealizeObject es sich um eine Memberfunktion der CGdiObject Klasse handelt, sollte sie nur für CBrush oder CPalette Objekte aufgerufen werden.

Leitet das System für CBrush Objekte an, den Ursprung des angegebenen Pinsels zurückzusetzen, UnrealizeObject wenn es das nächste Mal in einen Gerätekontext ausgewählt wird. Wenn es sich bei dem Objekt um ein CPalette Objekt handelt, leitet das System dazu, UnrealizeObject die Palette so zu realisieren, als ob es zuvor noch nicht realisiert wurde. Wenn die Anwendung das nächste Mal die CDC::RealizePalette-Funktion für die angegebene Palette aufruft, wird die logische Palette vollständig der Systempalette neu zugeordnet.

Die UnrealizeObject Funktion sollte nicht mit Bestandsobjekten verwendet werden. Die UnrealizeObject Funktion muss aufgerufen werden, wenn ein neuer Pinselursprung festgelegt wird (mithilfe der FUNKTION CDC::SetBrushOrg ). Die UnrealizeObject Funktion darf nicht für den aktuell ausgewählten Pinsel oder die aktuell ausgewählte Palette eines Anzeigekontexts aufgerufen werden.

Siehe auch

Hierarchiediagramm
CBitmap-Klasse
CBrush-Klasse
CFont-Klasse
CPalette-Klasse
CPen-Klasse
CRgn-Klasse