Sdílet prostřednictvím


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 CGdiObjectv tématu Grafické objekty.

Hierarchie dědičnosti

Objekt CObject

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