Deklaration: Declare Function MoveWindow Lib "user32.dll" ( _ ByVal hwnd As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal bRepaint As Long) As Long
Rückgabewert: Beispiel: ' schreiben Sie bitte den folgenden Code in ein Klassenmodul Private Declare Function InitCommonControlsEx Lib "comctl32.dll" ( _ lpInitCtrls As INITCOMMONCONTROLSEX_TYPE) As Long Private Declare Function CreateWindowEx Lib "user32.dll" _ Alias "CreateWindowExA" ( _ ByVal dwExStyle As Long, _ ByVal lpClassName As String, _ ByVal lpWindowName As String, _ ByVal dwStyle As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hWndParent As Long, _ ByVal hMenu As Long, _ ByVal hInstance As Long, _ lpParam As Any) As Long Private Declare Function MoveWindow Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal bRepaint As Long) As Long Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function SendMessage Lib "user32.dll" _ Alias "SendMessageA" ( _ ByVal hWnd As Long, _ ByVal Msg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" ( _ Destination As Any, _ Source As Any, _ ByVal Length As Long) Private Type INITCOMMONCONTROLSEX_TYPE dwSize As Long dwICC As Long End Type ' INITCOMMONCONTROLSEX_TYPE dwICC-Konstanten Private Const ICC_ANIMATE_CLASS = &H80 ' Animate-Klasse Private Const ICC_BAR_CLASSES = &H4 ' StatusBar-, TrackBar- und Toolbar- Klassen Private Const ICC_COOL_CLASSES = &H400 ' Rebar-Klasse Private Const ICC_DATE_CLASSES = &H100 ' Date- und TimePicker-Klassen Private Const ICC_HOTKEY_CLASS = &H40 ' Hotkey-Klasse Private Const ICC_INTERNET_CLASSES = &H800 ' IP-Adress-Klasse Private Const ICC_LISTVIEW_CLASSES = &H1 ' Listview-Klasse Private Const ICC_PAGESCROLLER_CLASS = &H1000 ' Page-Klasse Private Const ICC_PROGRESS_CLASS = &H20 ' ProgressBar-Klasse Private Const ICC_TAB_CLASSES = &H8 ' Tab- und Tooltip-Klassen Private Const ICC_TREEVIEW_CLASSES = &H2 ' Treeview- und Tooltip-Klassen Private Const ICC_UPDOWN_CLASS = &H10 ' Up-Down-Klasse Private Const ICC_USEREX_CLASSES = &H200 ' ControlBoxEx-Klassen Private Const ICC_WIN95_CLASSES = &HFF ' Animate-, Header-, Hotkey-, Listview-, ' ProgressBar-, StatusBar-, Tab-, Tooltip-, ToolBar-, Trackbar-, Treeview- und UP-Down-Klassen ' einige der Standard-Fensterstyles Private Const WS_CHILD = &H40000000 Private Const WS_VISIBLE = &H10000000 ' ProgressBar-Konstanten Private Const WM_USER = &H400 Private Const CCM_FIRST = &H2000 Private Const CCM_SETBKCOLOR = (CCM_FIRST + 1) Private Const PBM_DELTAPOS = (WM_USER + 3) Private Const PBM_GETPOS = (WM_USER + 8) Private Const PBM_GETRANGE = (WM_USER + 7) Private Const PBM_SETBARCOLOR = (WM_USER + 9) Private Const PBM_SETBKCOLOR = CCM_SETBKCOLOR Private Const PBM_SETPOS = (WM_USER + 2) Private Const PBM_SETRANGE = (WM_USER + 1) Private Const PBM_SETRANGE32 = (WM_USER + 6) Private Const PBM_SETSTEP = (WM_USER + 4) Private Const PBM_STEPIT = (WM_USER + 5) ' eigene Strukturen und Variablen Private Type MinMax Min As Integer Max As Integer End Type Private TmpRange As MinMax Private hProgressBar As Long Private LastValue As Long Private LastMin As Long Private LastMax As Long ' beim Initialisieren der Klasse die ProgressBar erstellen und auf der Form anzeigen Private Sub Class_Initialize() Dim Retval As Long, CCInit As INITCOMMONCONTROLSEX_TYPE ' ProgressBar der Struktur zuweisen With CCInit .dwSize = Len(CCInit) .dwICC = ICC_PROGRESS_CLASS End With ' ProgressBar registrieren Retval = InitCommonControlsEx(CCInit) If Retval = 0 Then MsgBox "Die ProgressBar konnte nicht Registriert werden.", vbCritical, "Fehler" Exit Sub End If ' ProgressBar-Fenster erstellen und auf der Form anzeigen hProgressBar = CreateWindowEx(0&, "msctls_progress", "ProgressBar", WS_CHILD _ Or WS_VISIBLE, 5, 5, 200, 20, Form1.hWnd, 0&, App.hInstance, 0&) If hProgressBar = 0 Then MsgBox "Progressbar Fenster konnte nicht erstellt werden." End If End Sub ' beim zerstören der Klasse ProgressBar entfernen Private Sub Class_Terminate() DestroyWindow hProgressBar End Sub ' ermittelt und setzt den aktuell gewählten Wert der ProgressBar Public Property Let Value(ByVal NewValue As Integer) SendMessage hProgressBar, PBM_SETPOS, NewValue, 0& End Property Public Property Get Value() As Integer Value = SendMessage(hProgressBar, PBM_GETPOS, 0&, 0&) End Property ' ermittelt und setzt die minimale Reichweite der ProgressBar Public Property Let Min(ByVal NewValue As Integer) Dim TmpLng As Long ' wir müssen die Struktur in eine Long-Variable umwandeln, um sie der Funktion ' zu übergeben TmpRange.Min = NewValue CopyMemory TmpLng, TmpRange, Len(TmpLng) SendMessage hProgressBar, PBM_SETRANGE, 0&, TmpLng End Property Public Property Get Min() As Integer Min = TmpRange.Min End Property ' ermittelt und setzt die maximale Reichweite der ProgressBar Public Property Let Max(ByVal NewValue As Integer) Dim TmpLng As Long, a(1) As Integer ' wir müssen die Struktur in eine Long-Variable umwandeln um sie der Funktion ' zu übergeben TmpRange.Max = NewValue CopyMemory TmpLng, TmpRange, Len(TmpLng) SendMessage hProgressBar, PBM_SETRANGE, 0&, TmpLng End Property Public Property Get Max() As Integer Max = TmpRange.Max End Property ' setzt die Fensterposition und -größe, in diesem Fall der ProgressBar Public Function SetPos(ByVal Left As Long, ByVal Top As Long, ByVal Width As Long, _ ByVal Height As Long) MoveWindow hProgressBar, Left, Top, Width, Height, True End Function ' dieser Code sollte in ein Fenster geschrieben werden (Form1) Private Progress1 As Progressbar ' lädt die ProgressBar und zeigt sie an Private Sub Form_Load() Set Progress1 = New Progressbar Me.ScaleMode = vbPixels ' einige Werte voreinstellen Progress1.Min = 0 Progress1.Max = 1000 End Sub ' die ProgressBar und CommadButton immer in der Mitte des Fenster anzeigen Private Sub Form_Resize() Progress1.SetPos Me.ScaleWidth / 3, (Me.ScaleHeight - 20) / 2, _ Me.ScaleWidth / 3, 20 Command1.Top = (Me.ScaleHeight - 20) / 2 + 25 Command1.Left = (Me.ScaleWidth - Command1.Width) / 2 End Sub ' startet einen Ablauf der ProgressBar Private Sub Command1_Click() Command1.Enabled = False For i = Progress1.Min To Progress1.Max Step 0.01 Progress1.Value = i DoEvents Next i MsgBox "Vorgang beendet !", vbInformation, "ProgressBar ohne ActiveX" Progress1.Value = Progress1.Min Command1.Enabled = True End Sub Diese Seite wurde bereits 19.348 mal aufgerufen. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Buchempfehlung Tipp des Monats September 2024 Dieter Otter Übergabeparameter: String oder Array? Mit der IsArray-Funktion lässt sich prüfen, ob es sich bei einem Übergabeparameter an eine Prozedur um ein Array oder einer "einfachen" Variable handelt. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||||||||
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. |