CGdiObject – třída
Poskytuje základní třídu pro různé druhy objektů rozhraní grafického zařízení (GDI) systému Windows, jako jsou rastrové obrázky, oblasti, štětce, pera, palety a písma.
Syntaxe
class CGdiObject : public CObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CGdiObject::CGdiObject | CGdiObject Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CGdiObject::Attach | Připojí objekt GDI systému Windows k objektu CGdiObject . |
CGdiObject::CreateStockObject | Načte úchyt na jedno z předdefinovaných per, štětců nebo písem windows. |
CGdiObject::D eleteObject | Odstraní objekt GDI systému Windows připojený k objektu CGdiObject z paměti uvolněním veškerého systémového úložiště přidruženého k objektu. |
CGdiObject::D eleteTempMap | Odstraní všechny dočasné CGdiObject objekty vytvořené .FromHandle |
CGdiObject::D etach | Odpojte objekt GDI systému Windows od objektu CGdiObject a vrátí popisovač objektu GDI systému Windows. |
CGdiObject::FromHandle | Vrátí ukazatel na CGdiObject objekt s daným popisovačem objektu GDI systému Windows. |
CGdiObject::GetObject | Vyplní vyrovnávací paměť daty popisovaným objektem GDI systému Windows připojeným k objektu CGdiObject . |
CGdiObject::GetObjectType | Načte typ objektu GDI. |
CGdiObject::GetSafeHandle | Vrátí m_hObject hodnotu, pokud this není null, v takovém případě je vrácena hodnota NULL. |
CGdiObject::UnrealizeObject | Obnoví původ štětce nebo obnoví logickou paletu. |
Veřejné operátory
Název | Popis |
---|---|
CGdiObject::operator != | Určuje, zda jsou dva objekty GDI logicky nerovny. |
CGdiObject::operator == | Určuje, zda jsou dva objekty GDI logicky rovny. |
CGdiObject::operator HGDIOBJ | Načte popisovač připojenému objektu GDI systému Windows. |
Veřejné datové členy
Název | Popis |
---|---|
CGdiObject::m_hObject | POPISOVAČ obsahující HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN nebo HFONT připojený k tomuto objektu. |
Poznámky
Nikdy nevytvoříte CGdiObject
přímo. Místo toho vytvoříte objekt z jedné z jeho odvozených tříd, například CPen
nebo CBrush
.
Další informace naleznete CGdiObject
v tématu Grafické objekty.
Hierarchie dědičnosti
CGdiObject
Požadavky
Hlavička: afxwin.h
CGdiObject::Attach
Připojí objekt GDI systému Windows k objektu CGdiObject
.
BOOL Attach(HGDIOBJ hObject);
Parametry
hObject
POPISOVAČ objektu GDI systému Windows (například HPEN nebo HBRUSH).
Návratová hodnota
Nenulové, pokud je příloha úspěšná; jinak 0.
CGdiObject::CGdiObject
CGdiObject
Vytvoří objekt.
CGdiObject();
Poznámky
Nikdy nevytvoříte CGdiObject
přímo. Místo toho vytvoříte objekt z jedné z jeho odvozených tříd, například CPen
nebo Cbrush
.
CGdiObject::CreateStockObject
Načte popisovač jednoho z předdefinovaných per, štětců nebo písem windows GDI a připojí objekt GDI k objektu CGdiObject
.
BOOL CreateStockObject(int nIndex);
Parametry
nIndex
Konstanta určující požadovaný typ skladového objektu. Popis odpovídajících hodnot najdete v parametru fnObject pro GetStockObject v sadě Windows SDK.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Volání této funkce s jednou z odvozených tříd, které odpovídají typu objektu GDI systému Windows, například CPen
pro burzovní pero.
CGdiObject::D eleteObject
Odstraní připojený objekt GDI systému Windows z paměti uvolněním veškerého systémového úložiště přidruženého k objektu GDI systému Windows.
BOOL DeleteObject();
Návratová hodnota
Nenulové, pokud byl objekt GDI úspěšně odstraněn; jinak 0.
Poznámky
Toto volání nemá vliv na úložiště přidružené k objektu CGdiObject
. Aplikace by neměla volat DeleteObject
CGdiObject
objekt, který je aktuálně vybrán do kontextu zařízení.
Při odstranění vzorového štětce se rastrový obrázek přidružený ke štětci neodstraní. Rastrový obrázek musí být odstraněn nezávisle.
CGdiObject::D eleteTempMap
Volá se automaticky obslužnou rutinou CWinApp
nečinnosti, DeleteTempMap
odstraní všechny dočasné CGdiObject
objekty vytvořené FromHandle
.
static void PASCAL DeleteTempMap();
Poznámky
DeleteTempMap
Před odstraněním objektu odpojte objekt GDI systému Windows připojený k dočasnému CGdiObject
objektu CGdiObject
.
Příklad
// 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
Odpojte objekt GDI systému Windows od objektu CGdiObject
a vrátí popisovač objektu GDI systému Windows.
HGDIOBJ Detach();
Návratová hodnota
A HANDLE
k objektu GDI systému Windows bylo odpojeno; jinak null, pokud není připojen žádný objekt GDI.
CGdiObject::FromHandle
Vrátí ukazatel na CGdiObject
objekt s daným popisovačem objektu GDI systému Windows.
static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);
Parametry
hObject
POPISOVAČ objektu GDI systému Windows.
Návratová hodnota
Ukazatel na dočasný CGdiObject
nebo trvalý ukazatel.
Poznámky
CGdiObject
Pokud objekt ještě není připojený k objektu GDI systému Windows, vytvoří se dočasný CGdiObject
objekt a připojí se.
Tento dočasný CGdiObject
objekt je platný pouze do okamžiku, kdy aplikace bude ve smyčce událostí nečinná, kdy se odstraní všechny dočasné grafické objekty. Dalším způsobem, jak to říct, je, že dočasný objekt je platný pouze během zpracování jedné zprávy okna.
CGdiObject::GetObject
Vyplní vyrovnávací paměť daty, která definují zadaný objekt.
int GetObject(
int nCount,
LPVOID lpObject) const;
Parametry
nCount
Určuje počet bajtů, které se mají zkopírovat do vyrovnávací paměti lpObject .
lpObject
Odkazuje na uživatelsky zadanou vyrovnávací paměť, která přijímá informace.
Návratová hodnota
Počet načtených bajtů; jinak 0, pokud dojde k chybě.
Poznámky
Funkce načte datovou strukturu, jejíž typ závisí na typu grafického objektu, jak je znázorněno v následujícím seznamu:
Object | Typ vyrovnávací paměti |
---|---|
CPen |
LOGPEN |
CBrush |
LOGBRUSH |
CFont |
LOGFONT |
CBitmap |
BITMAPA |
CPalette |
WORD |
CRgn |
Nepodporováno |
Pokud je objekt objektem CBitmap
, GetObject
vrátí pouze informace o šířce, výšce a barevném formátu rastrového obrázku. Skutečné bity lze načíst pomocí objektu CBitmap::GetBitmapBits.
Pokud je objekt objektem CPalette
, GetObject
načte WORD, který určuje počet položek v paletě. Funkce nenačte strukturu LOGPALETTE , která definuje paletu. Aplikace může získat informace o položkách palety voláním CPalette::GetPaletteEntries.
CGdiObject::GetObjectType
Načte typ objektu GDI.
UINT GetObjectType() const;
Návratová hodnota
Typ objektu, pokud byl úspěšný; jinak 0. Může jít o následující hodnoty:
OBJ_BITMAP Bitmap
OBJ_BRUSH štětec
Písmo OBJ_FONT
Paleta OBJ_PAL
pero OBJ_PEN
rozšířené pero OBJ_EXTPEN
OBJ_REGION oblast
kontext zařízení OBJ_DC
kontext paměťového zařízení OBJ_MEMDC
metasoubor OBJ_METAFILE
kontext zařízení OBJ_METADC metasouboru
OBJ_ENHMETAFILE rozšířeného metasouboru
OBJ_ENHMETADC kontext zařízení s rozšířeným metasouborem
CGdiObject::GetSafeHandle
Vrátí m_hObject
hodnotu, pokud this
není null, v takovém případě je vrácena hodnota NULL.
HGDIOBJ GetSafeHandle() const;
Návratová hodnota
POPISOVAČ připojeného objektu GDI systému Windows; v opačném případě null pokud není připojen žádný objekt.
Poznámky
Toto je součástí obecného paradigmatu rozhraní popisovače a je užitečné v případě, že hodnota NULL je platná nebo speciální hodnota pro popisovač.
Příklad
Podívejte se na příklad pro CWnd::IsWindowEnabled.
CGdiObject::m_hObject
POPISOVAČ obsahující HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE nebo HFONT připojený k tomuto objektu.
HGDIOBJ m_hObject;
CGdiObject::operator !=
Určuje, zda jsou dva objekty GDI logicky nerovny.
BOOL operator!=(const CGdiObject& obj) const;
Parametry
Obj
Ukazatel na existující CGdiObject
.
Poznámky
Určuje, zda objekt GDI na levé straně není roven objektu GDI na pravé straně.
CGdiObject::operator ==
Určuje, zda jsou dva objekty GDI logicky rovny.
BOOL operator==(const CGdiObject& obj) const;
Parametry
Obj
Odkaz na existující CGdiObject
.
Poznámky
Určuje, zda se objekt GDI na levé straně rovná objektu GDI na pravé straně.
CGdiObject::operator HGDIOBJ
Načte popisovač připojeného objektu GDI systému Windows; v opačném případě null pokud není připojen žádný objekt.
operator HGDIOBJ() const;
CGdiObject::UnrealizeObject
Obnoví původ štětce nebo obnoví logickou paletu.
BOOL UnrealizeObject();
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
I když UnrealizeObject
je členová funkce CGdiObject
třídy, měla by být vyvolána pouze u CBrush
objektů nebo CPalette
objektů.
U CBrush
objektů nasměruje systém k UnrealizeObject
resetování původu daného štětce při příštím výběru do kontextu zařízení. Pokud je objekt objektem CPalette
, UnrealizeObject
nasměruje systém k realizaci palety, jako by předtím nebyl dosažen. Když aplikace příště zavolá funkci CDC::RealizePalette pro zadanou paletu, systém zcela znovu namapuje logickou paletu na systémovou paletu.
Funkce UnrealizeObject
by se neměla používat s skladovými objekty. Funkce UnrealizeObject
se musí volat při každém nastavení nového původu štětce (pomocí funkce CDC::SetBrushOrg ). Funkce UnrealizeObject
nesmí být volána pro aktuálně vybraný štětec nebo aktuálně vybranou paletu jakéhokoli kontextu zobrazení.
Viz také
Graf hierarchie
CBitmap – třída
CBrush – třída
CFont – třída
CPalette – třída
CPen – třída
CRgn – třída