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.
class CGdiObject : public CObject
Nazwa/nazwisko | opis |
---|---|
CGdiObject::CGdiObject | CGdiObject Tworzy obiekt. |
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ą. |
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. |
Nazwa/nazwisko | opis |
---|---|
CGdiObject::m_hObject | Uchwyt zawierający HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN lub HFONT dołączony do tego obiektu. |
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.
CGdiObject
Nagłówek: afxwin.h
Dołącza obiekt GDI systemu CGdiObject
Windows do obiektu.
BOOL Attach(HGDIOBJ hObject);
hObject
Uchwyt do obiektu GDI systemu Windows (na przykład HPEN lub HBRUSH).
Bezzerowe, jeśli załącznik zakończył się pomyślnie; w przeciwnym razie 0.
CGdiObject
Tworzy obiekt.
CGdiObject();
Nigdy nie tworzysz bezpośrednio CGdiObject
. Zamiast tego należy utworzyć obiekt na podstawie jednej z jego klas pochodnych, takich jak CPen
lub Cbrush
.
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);
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.
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
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.
Usuwa dołączony obiekt GDI systemu Windows z pamięci, zwalniając cały magazyn systemowy skojarzony z obiektem GDI systemu Windows.
BOOL DeleteObject();
Nonzero, jeśli obiekt GDI został pomyślnie usunięty; w przeciwnym razie 0.
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.
Wywoływana CWinApp
automatycznie przez program obsługi bezczynności usuwa DeleteTempMap
wszystkie obiekty tymczasowe CGdiObject
utworzone przez FromHandle
program .
static void PASCAL DeleteTempMap();
DeleteTempMap
odłącza obiekt GDI systemu Windows dołączony do obiektu tymczasowego CGdiObject
przed usunięciem CGdiObject
obiektu.
// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();
Odłącza obiekt GDI systemu Windows od CGdiObject
obiektu i zwraca uchwyt do obiektu GDI systemu Windows.
HGDIOBJ Detach();
Obiekt HANDLE
GDI systemu Windows jest odłączony; w przeciwnym razie wartość NULL, jeśli żaden obiekt GDI nie jest dołączony.
Zwraca wskaźnik do CGdiObject
obiektu podanego dojścia do obiektu GDI systemu Windows.
static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);
hObject
Dojście do obiektu GDI systemu Windows.
Wskaźnik do, CGdiObject
który może być tymczasowy lub stały.
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.
Wypełnia bufor danymi definiującymi określony obiekt.
int GetObject(
int nCount,
LPVOID lpObject) const;
nCount
Określa liczbę bajtów do skopiowania do buforu lpObject .
lpObject
Wskazuje bufor dostarczony przez użytkownika, który ma odbierać informacje.
Liczba pobranych bajtów; w przeciwnym razie 0, jeśli wystąpi błąd.
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.
Pobiera typ obiektu GDI.
UINT GetObjectType() const;
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
Zwraca m_hObject
wartość , chyba że this
ma wartość NULL, w tym przypadku zwracana jest wartość NULL.
HGDIOBJ GetSafeHandle() const;
Dojście do dołączonego obiektu GDI systemu Windows; w przeciwnym razie wartość NULL, jeśli żaden obiekt nie jest dołączony.
Jest to część ogólnego paradygmatu interfejsu obsługi i jest przydatna, gdy wartość NULL jest prawidłową lub specjalną wartością dla uchwytu.
Zobacz przykład CWnd ::IsWindowEnabled.
Uchwyt zawierający HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE lub HFONT dołączony do tego obiektu.
HGDIOBJ m_hObject;
Określa, czy dwa obiekty GDI są logicznie nie równe.
BOOL operator!=(const CGdiObject& obj) const;
Obj
Wskaźnik do istniejącego CGdiObject
elementu .
Określa, czy obiekt GDI po lewej stronie nie jest równy obiektowi GDI po prawej stronie.
Określa, czy dwa obiekty GDI są logicznie równe.
BOOL operator==(const CGdiObject& obj) const;
Obj
Odwołanie do istniejącego CGdiObject
elementu .
Określa, czy obiekt GDI po lewej stronie jest równy obiektowi GDI po prawej stronie.
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;
Resetuje początek pędzla lub resetuje paletę logiczną.
BOOL UnrealizeObject();
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
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.
Wykres hierarchii
Klasa CBitmap
Klasa CBrush
Klasa CFont
Klasa CPalette
Klasa CPen
Klasa CRgn