Udostępnij za pośrednictwem


Klasa CGdiObject

Udostępnia klasę bazową dla różnych rodzajów obiektów interfejsu graficznego (GDI) systemu Windows, takich jak mapy bitowe, regiony, pędzle, pióra, palety i czcionki.

Składnia

class CGdiObject : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CGdiObject::CGdiObject CGdiObject Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CGdiObject::Attach Dołącza obiekt GDI systemu CGdiObject Windows do obiektu.
CGdiObject::CreateStockObject Pobiera uchwyt do jednego ze wstępnie zdefiniowanych długopisów, pędzli lub czcionek systemu Windows.
CGdiObject::D eleteObject Usuwa obiekt GDI systemu Windows dołączony do CGdiObject obiektu z pamięci, zwalniając cały magazyn systemowy skojarzony z obiektem.
CGdiObject::D eleteTempMap Usuwa wszystkie obiekty tymczasowe CGdiObject utworzone przez FromHandleprogram .
CGdiObject::D etach Odłącza obiekt GDI systemu Windows od CGdiObject obiektu i zwraca uchwyt do obiektu GDI systemu Windows.
CGdiObject::FromHandle Zwraca wskaźnik do CGdiObject obiektu podanego dojścia do obiektu GDI systemu Windows.
CGdiObject::GetObject Wypełnia bufor danymi, które opisują obiekt GDI systemu Windows dołączony do CGdiObject obiektu.
CGdiObject::GetObjectType Pobiera typ obiektu GDI.
CGdiObject::GetSafeHandle Zwraca m_hObject wartość , chyba że this ma wartość NULL, w tym przypadku zwracana jest wartość NULL.
CGdiObject::UnrealizeObject Resetuje początek pędzla lub resetuje paletę logiczną.

Operatory publiczne

Nazwa/nazwisko opis
CGdiObject::operator != Określa, czy dwa obiekty GDI są logicznie nie równe.
CGdiObject::operator == Określa, czy dwa obiekty GDI są logicznie równe.
CGdiObject::operator HGDIOBJ Pobiera uchwyt do dołączonego obiektu GDI systemu Windows.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CGdiObject::m_hObject Uchwyt zawierający HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN lub HFONT dołączony do tego obiektu.

Uwagi

Nigdy nie tworzysz bezpośrednio CGdiObject . Zamiast tego należy utworzyć obiekt na podstawie jednej z jego klas pochodnych, takich jak CPen lub CBrush.

Aby uzyskać więcej informacji na temat CGdiObjectprogramu , zobacz Obiekty graficzne.

Hierarchia dziedziczenia

Obiekt CObject

CGdiObject

Wymagania

Nagłówek: afxwin.h

CGdiObject::Attach

Dołącza obiekt GDI systemu CGdiObject Windows do obiektu.

BOOL Attach(HGDIOBJ hObject);

Parametry

hObject
Uchwyt do obiektu GDI systemu Windows (na przykład HPEN lub HBRUSH).

Wartość zwracana

Bezzerowe, jeśli załącznik zakończył się pomyślnie; w przeciwnym razie 0.

CGdiObject::CGdiObject

CGdiObject Tworzy obiekt.

CGdiObject();

Uwagi

Nigdy nie tworzysz bezpośrednio CGdiObject . Zamiast tego należy utworzyć obiekt na podstawie jednej z jego klas pochodnych, takich jak CPen lub Cbrush.

CGdiObject::CreateStockObject

Pobiera uchwyt do jednego ze wstępnie zdefiniowanych długopisów GDI systemu Windows, pędzli lub czcionek i dołącza obiekt GDI do CGdiObject obiektu.

BOOL CreateStockObject(int nIndex);

Parametry

nIndex
Stała określająca żądany typ obiektu stockowego. Aby uzyskać opis odpowiednich wartości, zobacz parametr fnObject for GetStockObject w zestawie Windows SDK.

Wartość zwracana

Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Wywołaj tę funkcję za pomocą jednej z klas pochodnych, która odpowiada typowi obiektu GDI systemu Windows, na przykład CPen dla pióra giełdowego.

CGdiObject::D eleteObject

Usuwa dołączony obiekt GDI systemu Windows z pamięci, zwalniając cały magazyn systemowy skojarzony z obiektem GDI systemu Windows.

BOOL DeleteObject();

Wartość zwracana

Nonzero, jeśli obiekt GDI został pomyślnie usunięty; w przeciwnym razie 0.

Uwagi

Ten wywołanie nie ma wpływu na magazyn skojarzony z obiektem CGdiObject . Aplikacja nie powinna wywoływać DeleteObject obiektu aktualnie wybranego CGdiObject w kontekście urządzenia.

Po usunięciu pędzla deseń mapa bitowa skojarzona z pędzlem nie zostanie usunięta. Mapa bitowa musi zostać usunięta niezależnie.

CGdiObject::D eleteTempMap

Wywoływana CWinApp automatycznie przez program obsługi bezczynności usuwa DeleteTempMap wszystkie obiekty tymczasowe CGdiObject utworzone przez FromHandleprogram .

static void PASCAL DeleteTempMap();

Uwagi

DeleteTempMap odłącza obiekt GDI systemu Windows dołączony do obiektu tymczasowego CGdiObject przed usunięciem CGdiObject obiektu.

Przykład

// 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

Odłącza obiekt GDI systemu Windows od CGdiObject obiektu i zwraca uchwyt do obiektu GDI systemu Windows.

HGDIOBJ Detach();

Wartość zwracana

Obiekt HANDLE GDI systemu Windows jest odłączony; w przeciwnym razie wartość NULL, jeśli żaden obiekt GDI nie jest dołączony.

CGdiObject::FromHandle

Zwraca wskaźnik do CGdiObject obiektu podanego dojścia do obiektu GDI systemu Windows.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parametry

hObject
Dojście do obiektu GDI systemu Windows.

Wartość zwracana

Wskaźnik do, CGdiObject który może być tymczasowy lub stały.

Uwagi

CGdiObject Jeśli obiekt nie jest jeszcze dołączony do obiektu GDI systemu Windows, zostanie utworzony i dołączony obiekt tymczasowyCGdiObject.

Ten obiekt tymczasowy CGdiObject jest prawidłowy tylko do następnego czasu bezczynności aplikacji w pętli zdarzeń, w którym wszystkie tymczasowe obiekty graficzne są usuwane. Innym sposobem stwierdzenia jest to, że obiekt tymczasowy jest prawidłowy tylko podczas przetwarzania jednego komunikatu okna.

CGdiObject::GetObject

Wypełnia bufor danymi definiującymi określony obiekt.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parametry

nCount
Określa liczbę bajtów do skopiowania do buforu lpObject .

lpObject
Wskazuje bufor dostarczony przez użytkownika, który ma odbierać informacje.

Wartość zwracana

Liczba pobranych bajtów; w przeciwnym razie 0, jeśli wystąpi błąd.

Uwagi

Funkcja pobiera strukturę danych, której typ zależy od typu obiektu graficznego, jak pokazano na poniższej liście:

Objekt Typ buforu
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap BITMAPA
CPalette WORD
CRgn Nieobsługiwane

Jeśli obiekt jest obiektem CBitmap , GetObject zwraca tylko informacje o szerokości, wysokości i formacie koloru mapy bitowej. Rzeczywiste bity można pobrać przy użyciu CBitmap::GetBitmapBits.

Jeśli obiekt jest obiektem CPalette , GetObject pobiera program WORD określający liczbę wpisów na palecie. Funkcja nie pobiera struktury LOGPALETTE definiującej paletę. Aplikacja może uzyskać informacje na temat wpisów palety, wywołując polecenie CPalette::GetPaletteEntries.

CGdiObject::GetObjectType

Pobiera typ obiektu GDI.

UINT GetObjectType() const;

Wartość zwracana

Typ obiektu, jeśli się powiedzie; w przeciwnym razie 0. Może to być jedna z następujących wartości:

  • mapa bitowa OBJ_BITMAP

  • szczotka OBJ_BRUSH

  • Czcionka OBJ_FONT

  • paleta OBJ_PAL

  • pióro OBJ_PEN

  • OBJ_EXTPEN pióro rozszerzone

  • OBJ_REGION Region

  • kontekst urządzenia OBJ_DC

  • kontekst urządzenia pamięci OBJ_MEMDC

  • OBJ_METAFILE Metafile

  • OBJ_METADC kontekst urządzenia Metafile

  • OBJ_ENHMETAFILE rozszerzony metaplik

  • OBJ_ENHMETADC rozszerzonego kontekstu urządzenia metapliku

CGdiObject::GetSafeHandle

Zwraca m_hObject wartość , chyba że this ma wartość NULL, w tym przypadku zwracana jest wartość NULL.

HGDIOBJ GetSafeHandle() const;

Wartość zwracana

Dojście do dołączonego obiektu GDI systemu Windows; w przeciwnym razie wartość NULL, jeśli żaden obiekt nie jest dołączony.

Uwagi

Jest to część ogólnego paradygmatu interfejsu obsługi i jest przydatna, gdy wartość NULL jest prawidłową lub specjalną wartością dla uchwytu.

Przykład

Zobacz przykład CWnd ::IsWindowEnabled.

CGdiObject::m_hObject

Uchwyt zawierający HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE lub HFONT dołączony do tego obiektu.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Określa, czy dwa obiekty GDI są logicznie nie równe.

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

Parametry

Obj
Wskaźnik do istniejącego CGdiObjectelementu .

Uwagi

Określa, czy obiekt GDI po lewej stronie nie jest równy obiektowi GDI po prawej stronie.

CGdiObject::operator ==

Określa, czy dwa obiekty GDI są logicznie równe.

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

Parametry

Obj
Odwołanie do istniejącego CGdiObjectelementu .

Uwagi

Określa, czy obiekt GDI po lewej stronie jest równy obiektowi GDI po prawej stronie.

CGdiObject::operator HGDIOBJ

Pobiera uchwyt do dołączonego obiektu GDI systemu Windows; w przeciwnym razie wartość NULL, jeśli żaden obiekt nie jest dołączony.

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

Resetuje początek pędzla lub resetuje paletę logiczną.

BOOL UnrealizeObject();

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Chociaż UnrealizeObject jest funkcją CGdiObject składową klasy, powinna być wywoływana tylko na CBrush obiektach lub CPalette .

W przypadku CBrush obiektów UnrealizeObject program przekierowuje system do zresetowania źródła danego pędzla przy następnym wybraniu go do kontekstu urządzenia. Jeśli obiekt jest obiektem CPalette , UnrealizeObject kieruje system do realizacji palety tak, jakby nie został wcześniej zrealizowany. Następnym razem, gdy aplikacja wywołuje funkcję CDC::RealizePalette dla określonej palety, system całkowicie ponownie mapuje paletę logiczną na paletę systemową.

Funkcja UnrealizeObject nie powinna być używana z obiektami stockowymi. Funkcja UnrealizeObject musi być wywoływana za każdym razem, gdy zostanie ustawione nowe źródło pędzla (za pomocą funkcji CDC::SetBrushOrg ). Funkcja UnrealizeObject nie może być wywoływana dla aktualnie wybranego pędzla lub aktualnie wybranej palety dowolnego kontekstu wyświetlania.

Zobacz też

Wykres hierarchii
Klasa CBitmap
Klasa CBrush
Klasa CFont
Klasa CPalette
Klasa CPen
Klasa CRgn