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 CGdiObject
finden Sie unter Graphic Objects.
Vererbungshierarchie
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