Opis funkcji GetObject (...)
zwraca informacje dotyczące określonego obiektu graficznego. W zależności od typu obiektu graficznego, informacje zwracane są w strukturze BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT, LOGPEN, a w przypadku palety logicznej zwracana jest tylko ilość elementów palety.
Private Declare Function GetObject _ Lib "gdi32" Alias "GetObjectA" ( _ ByVal hObject As Long, _ ByVal nCount As Long, _ ByRef lpObject As Any) As Long
- argumenty:
- hObject
- uchwyt do obiektu graficznego następującego typu: logiczna bitmapa, pędzel, czcionka, paleta, pióro, lub mapa bitowa niezależna od urządzenia (DIB) utworzone poprzez wywołanie funkcji CreateDIBSection(...)
- nCount
- ilość bajtów, jaka ma być zapisana w buforze zawierającym zwracane informacje
- lpObject
-
wskaźnik do bufora, w którym mają zostać zapisane informacje o określonym obiekcie graficznym.
Adres lpObject musi być liczbą 4-bajtową, w przeciwnym przypadku funkcja GetObject(...)
zakończy się niepowodzeniem.
Rodzaj zwracanej w buforze informacji, dla poszczególnych typów obiektów graficznych określonych przez argument hObject Typ obiektu Dane zwracane w buforze *lpvObject hBitmap BITMAP hBitmap - uchwyt bitmapy zwracany przez funkcję CreateDIBSection DIBSECTION, jeżeli argument cbBuffer określa wielkość struktury DIBSECTION, lub BITMAP, jeżeli argument cbBuffer określa wielkość struktury BITMAP hPalette Integer - określa ilość elementów w logicznej palecie.
Nie jest zwracana struktura LOGPALETTE. Aby uzyskać informacje o elementach palety, należy użyć funkcji GetPaletteEntries.hPen LOGPEN hBrush LOGBRUSH hFont LOGFONT
- zwraca:
-
Jeśli funkcja zakończy się powodzeniem, lpObject jest poprawnym wskaźnikiem, a funkcja zwraca liczbę bajtów zapisanych w buforze.
Przy powodzeniu i argumencie lpObject równym ZERO, zwraca ilość bajtów potrzebnych do zapisania informacji w buforze o przekazanym typie obiektu graficznego.
Przy niepowodzeniu funkcja zwraca ZERO.
Kilka uwag o stosowaniu funkcji GetObject(...).
-
Bufor wskazywany przez parametr lpObject musi być wystarczająco duży, na przyjęcie informacji o obiekcie graficznym.
W zależności od obiektu graficznego funkcja wykorzystuje strukturę BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH,
LOGFONT lub LOGPEN lub liczbę wpisów w tabeli (dla palety logicznej).
-
Jeśli hObject jest uchwytem do bitmapy utworzonej przez wywołanie metody CreateDIBSection(...),
a określony bufor jest wystarczająco duży, funkcja GetObject(...) zwraca strukturę DIBSECTION.
Ponadto element bmBits struktury BITMAP zawarty w DIBSECTION będzie zawierał
wskaźnik do bitów bitmapy.
-
Jeśli hObject jest uchwytem do bitmapy utworzonej w jakikolwiek inny sposób, GetObject(...) zwraca tylko informacje
o szerokości, wysokości i formacie kolorów bitmapy. Można uzyskać wartości bitowe bitmapy, wywołując funkcję
GetDIBits(...) lub GetBitmapBits(...).
- Jeśli hObject jest uchwytem do palety logicznej, funkcja GetObject(...) pobiera 2-bajtową liczbę całkowitą, która określa liczbę wpisów w palecie. Funkcja nie pobiera struktury LOGPALETTE definiującej paletę. Aby pobrać informacje o wpisach palety, aplikacja może wywołać funkcję GetPaletteEntries(...).