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
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
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 13.585 mal aufgerufen. |
Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Buchempfehlung Tipp des Monats ![]() Thomas Demmler Datums-Barcode-Formate flexibel konvertieren Verschiedenste Strings mit enthaltenem Datum korrekt auswerten TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||||||||
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. |