Rubrik: Grafik & Zeichnen | 22.03.05 |
GetObject-Funktion Diese Funktion ermittelt Informationen von einem angegebenem Grafikobjekt. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 13.341 |
Deklaration:
Declare Function GetObject Lib "gdi32" _ Alias "GetObjectA" ( _ ByVal hObject As Long, _ ByVal nCount As Long, _ lpObject As Any) As Long
Beschreibung:
Diese Funktion ermittelt Informationen von einem angegebenem Grafikobjekt.
Parameter:
hObject | Erwartet das Handle eines Grafikobjektes, dessen Informationen ermittelt werden sollen. Das übergebene Handle kann ein Handle von einem Bitmap, Pen, Brush, Font oderein gerätespezifisches Bitmap sein, das mittels der CreateDIBSection-Funktion erstellt wurde. |
nCount | Erwartet die Größe des Puffers der bei "lpObject" übergeben wird. |
lpObject | Erwartet eine der folgenden Strukturen, die mit den Informationen des entsprechenden Objektes gefüllt wird: BITMAP-Struktur (hBitmap), DIBSECTION-Struktur (hBitmap erstellt mit CreateDIBSection-Funktion), Long-Variable (hPalette), EXTLOGPEN-Struktur (hPen erstellt mit ExtCreatePen-Funktion), LOGPEN-Struktur (hPen), LOGBRUSH-Struktur (hBrush), LOGFONT-Struktur (hFont). |
Rückgabewert:
Ist die Funktion erfolgreich, so wird die Anzahl der in den Puffer kopierten Bytes zurückgegeben. Wurde kein Puffer übergeben, so wird diebenötigte Größe des Puffers zurückgegeben. Ist die Funktion fehlgeschlagen so wird derWert "0" zurückgegeben. Unter Windows NT, 2000 und XP können Sie die GetLastError-Funktion für erweiterte Fehlerinformationen aufrufen.
Beispiel:
Private Declare Function GetObject Lib "gdi32" _ Alias "GetObjectA" ( _ ByVal hObject As Long, _ ByVal nCount As Long, _ lpObject As Any) As Long Private Declare Function GetObjectType Lib "gdi32" ( _ ByVal hgdiobj As Long) As Long Private Type BITMAP bmType As Long bmWidth As Long bmHeight As Long bmWidthBytes As Long bmPlanes As Integer bmBitsPixel As Integer bmBits As Long End Type ' GetObjectType Rückgabe-Konstanten Private Const OBJ_BITMAP = 7 ' Das Objekt ist ein Bitmap Private Const OBJ_BRUSH = 2 ' Das Objekt ist ein Brush Private Const OBJ_COLORSPACE = 14 ' Das Object ist ein Colorspace Private Const OBJ_DC = 3 ' Das Objekt ist ein Devicekontext Private Const OBJ_ENHMETADC = 12 ' Das Objekt ist Enhanced Meta Device Private Const OBJ_ENHMETAFILE = 13 ' Das Objekt ist eine Enhanced Meta Datei Private Const OBJ_EXTPEN = 11 ' Das Objekt ist ein erweiteter Pen Private Const OBJ_FONT = 6 ' Das Objekt ist ein Font Private Const OBJ_MEMDC = 10 ' Das Objekt ist ein Speicher Device Private Const OBJ_METADC = 4 ' Das Objekt ist ein Meta Device Private Const OBJ_METAFILE = 9 ' Das Objekt ist eine Meta Datei Private Const OBJ_PAL = 5 ' Das Objekt ist eine Palette Private Const OBJ_PEN = 1 ' Das Objekt ist ein Pen Private Const OBJ_REGION = 8 ' Das Objekt ist eine Region
' Bitmapinformationen eines Bildfeldes ermitteln Private Sub Form_Load() Dim BM As BITMAP, Retval As Long ' Objekttyp des Handles ermitteln Retval = GetObjectType(Picture1.Picture.Handle) ' Ist das Objekt ein Bitmap ? If Retval = OBJ_BITMAP Then Retval = GetObject(Picture1.Picture.Handle, Len(BM), BM) Debug.Print "Bitmapinfos: " & BM.bmBitsPixel & "-Bit " & _ BM.bmWidth & "x" & BM.bmHeight ElseIf Retval = 0 Then Debug.Print "Das übergebene Handle ist keinem Objekt zugeordnet" End If End Sub