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 FromHandle program . |
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 CGdiObject
programu , zobacz Obiekty graficzne.
Hierarchia dziedziczenia
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 FromHandle
program .
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 CGdiObject
elementu .
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 CGdiObject
elementu .
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