vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen15.03.02
LoadImage-Funktion

Diese Funktion lädt ein Icon, Bitmap, Cursor oder eine Enhanced Metadatei und gibt deren Handle zurück.

Betriebssystem:  Win95, Win98, WinNT 4.0, Win2000, WinMEViews:  14.017 

Deklaration:

Declare Function LoadImage Lib "user32" _
  Alias "LoadImageA" ( _
  ByVal hInst As Long, _
  ByVal lpsz As String, _
  ByVal dwImageType As Long, _
  ByVal dwDesiredWidth As Long, _
  ByVal dwDesiredHeight As Long, _
  ByVal dwFlags As Long) As Long


Beschreibung:

Diese Funktion lädt ein Icon, Bitmap, Cursor oder eine Enhanced Metadatei und gibt deren Handle zurück.


Parameter:

hinstErwartet das Instanzhandle der Anwendung die das Bildlädt.
lpszNameErwartet den Pfadnamen einer Datei, wenn das "LR_LOADFROMFILE-Flag in "dwFlags" gesetzt worden ist. Ist dieses Flag nicht festgelegt, muss hier ein Name einer Ressource angegeben werden, die das Bildobjekt beinhaltet
uTypeErwartet eine der "uType"-Konstanten diefestlegen, welcher Art das Bildobjekt ist und welcher Art das zurückgegebene Handle sein soll.
cxDesiredErwartet die Breite des Bitmaps, das geladen werden soll. Wird nicht die Originalgröße angegeben, so wird das Bild gestreckt. Ist das "LR_DEFAULTSIZE"-Flag gesetzt, so wird die Standardgröße für Icons/Cursor gewählt und dieAngaben der Größe werden ignoriert, falls das zu ladende Objekt ein Icon/Cursor ist. Ist im System die Größe nicht definiert, so wird die Originalgröße desObjekts verwendet.
cyDesiredErwartet die Breite des Bitmaps, das geladen werden soll. Wird nicht die Originalgröße angegeben, so wird das Bild gestreckt. Ist das "LR_DEFAULTSIZE"-Flag gesetzt, so wird die Standardgröße für Icons/Cursor gewählt und dieAngaben der Größe werden ignoriert, falls das zu ladende Objekt ein Icon/Cursor ist. Ist im System die Größe nicht definiert, so wird die Originalgröße desObjekts verwendet.
fuLoadErwartet eine oder eine Kombination mehrerer "fuLoad"-Konstanten, um die Art des Ladens festzulegen.


uType Konstanten:

 
Const IMAGE_BITMAP = 0
' gibt ein Handle zu einem Bitmap zurück
 
Const IMAGE_ICON = 1
' gibt ein Handle zu einem Icon zurück
 
Const IMAGE_CURSOR = 2
' gibt ein Handle zu einem Cursor zurück
 
Const IMAGE_ENHMETAFILE = 3
' gibt ein Handle zu einer Enhanced Metadatei zurück
 


Rückgabewert:

Ist die Funktion erfolgreich, so wird das Handle des geladenen Objekts zurückgegeben, andernfalls ist die Rückgabe "0".

Beispiel:

Private Declare Function GetClassLong Lib "user32.dll" _
  Alias "GetClassLongA" ( _
  ByVal hWnd As Long, _
  ByVal nIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32.dll" _
  Alias "SetClassLongA" ( _
  ByVal hWnd As Long, _
  ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long
Private Declare Function GetClassName Lib "user32.dll" _
  Alias "GetClassNameA" ( _
  ByVal hWnd As Long, _
  ByVal lpClassName As String, _
  ByVal nMaxCount As Long) As Long
Private Declare Function CallWindowProc Lib "user32.dll" _
  Alias "CallWindowProcA" ( _
  ByVal lpPrevWndFunc As Long, _
  ByVal hWnd As Long, _
  ByVal Msg As Long, _
  ByVal WParam As Long, _
  ByVal lParam As Long) As Long
Private Declare Function LoadImage Lib "user32" _
  Alias "LoadImageA" ( _
  ByVal hInst As Long, _
  ByVal lpsz As String, _
  ByVal dwImageType As Long, _
  ByVal dwDesiredWidth As Long, _
  ByVal dwDesiredHeight As Long, _
  ByVal dwFlags As Long) As Long
 
' Get/Set-Class nIndex-Konstanten
Private Const GCL_CBCLSEXTRA = -20 ' ermittelt die Größe des Extraspeichers der Klasse 
Private Const GCL_CBWNDEXTRA = -18 ' ermittelt die Größe des Extraspeichers des Fensters 
Private Const GCL_HBRBACKGROUND = -10 ' ermittelt das Handle des Brushs der Klasse
Private Const GCL_HCURSOR = -12 ' ermittelt das Handle des Cursors der Klasse
Private Const GCL_HICON = -14 ' ermittelt das Handle des Icons der Klasse
Private Const GCL_HMODULE = -16 ' ermittelt das Handle des Moduls der Klasse
Private Const GCL_MENUNAME = -8 ' ermittelt den Menünamen der Klasse
Private Const GCL_STYLE = -26 ' ermittelt den Fensterstyle der Klasse
Private Const GCL_WNDPROC = -24 ' ermittelt die Prozeduradresse der Klasse
 
' LoadImage dwImageType-Konstanten
Private Const IMAGE_BITMAP = 0 ' gibt ein Handle zu einem Bitmap zurück
Private Const IMAGE_ICON = 1 ' gibt ein Handle zu einem Icon zurück
Private Const IMAGE_CURSOR = 2 ' gibt ein Handle zu einem Cursor zurück
Private Const IMAGE_ENHMETAFILE = 3 ' gibt ein Handle zu einer Enhanced Metadatei zurück 
 
' LoadImage dwFlags-Konstanten
Private Const LR_CREATEDIBSECTION = &H2000 ' lädt ein Bitmap mit Dib-Sektionen
Private Const LR_DEFAULTCOLOR = &H0 ' lädt das Bild in den Standardfarben (Not 
' LR_MONOCHROME) 
Private Const LR_DEFAULTSIZE = &H40 ' lädt das Bild in der Standardgröße des Bildes
Private Const LR_LOADFROMFILE = &H10 ' lädt das Bild von einer Datei
Private Const LR_LOADMAP3DCOLORS = &H1000 ' ersetzt bestimmte Grautöne eines Bildes  
' mit den Systemfarben für 3D-Ramen die normalerweise den Grautönen zugeordnet sind
Private Const LR_LOADTRANSPARENT = &H20 ' ersetzt alle Pixel des Bildes mit dem  
' Farbwert des ersten Pixels des Bitmaps durch die Standard-Fensterhintergrundfarbe
Private Const LR_MONOCHROME = &H1 ' lädt das Bild in schwarzweiß
Private Const LR_SHARED = &H8000 ' diese Option erzwingt, dass bei mehrmaligem   
' Aufruf der Funktion jedes Mal das gleiche Handle zurückgegeben wird und  
' das Bild nicht erneut geladen wird
Private Const LR_COPYFROMRESOURCE = &H4000 ' lädt das Bild aus einer Ressource
 
' eine der Fensternachrichten
Private Const WM_CLOSE = &H10 ' schließt das Fenster
 
Private hIcon As Long
' der Fensterklasse unserer Form ein anderes Icon zuweisen
Private Sub Form_Load()
  Dim Retval As Long
  Dim Buffer As String * 256
 
  ' Klassennamen ermitteln
  Retval = GetClassName(Me.hWnd, Buffer, Len(Buffer))
  If Retval = 0 Then
    MsgBox "Der Klassenname konnte nicht ermittelt werden"
  Else
    MsgBox "Der Klassenname dieses Fensters ist """ & Left$(Buffer, Retval) & """" 
  End If
 
 
  ' Icon laden
  hIcon = LoadImage(App.hInstance, App.Path & "\Misc01.ico", IMAGE_ICON, 16&,  _
  16&, LR_LOADFROMFILE)
  If hIcon = 0 Then
    MsgBox "Fehler beim Laden des Icons"
    Exit Sub
  End If
 
  ' Icon der Klasse zuweisen (das Fenster zeigt darauf keinerlei Reaktionen,
  ' man müsste zu diesem Zweck selbst ein Fenster dieser Klasse mit Hilfe
  ' der CreateWindowEx-Funktion erstellen)
  Retval = SetClassLong(Me.hWnd, GCL_HICON, hIcon)
  If Retval = 0 Then
    MsgBox "Das Icon konnte nicht zugewiesen werden"
  End If
End Sub
' Form schließen einmal anders
Private Sub Command1_Click()
  Dim ProcAddress As Long
 
  ' Prozedur-Adresse unserer Form bekommen
  ProcAddress = GetClassLong(Form1.hWnd, GCL_WNDPROC)
  If ProcAddress = 0 Then
    MsgBox "Die Prozeduradresse der Fensterklasse konnte nicht ermittelt werden." 
    End
  End If
 
  ' unserer Form die Schließen-Nachricht zusenden
  CallWindowProc ProcAddress, Me.hWnd, WM_CLOSE, 0&, 0&
End Sub

Diese Seite wurde bereits 14.017 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel