vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik & Zeichnen22.03.05
GetObject-Funktion

Diese Funktion ermittelt Informationen von einem angegebenem Grafikobjekt.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  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:
hObjectErwartet 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.
nCountErwartet die Größe des Puffers der bei "lpObject" übergeben wird.
lpObjectErwartet 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

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.