vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: Windows/System15.03.02
InitCommonControlsEx-Funktion

Diese Funktion registriert eine Klasse eines Common-Control-Steuerelementes.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  4.971 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Deklaration:

    Declare Function InitCommonControlsEx Lib "comctl32.dll" ( _
      lpInitCtrls As INITCOMMONCONTROLSEX_TYPE) As Long


    Beschreibung:

    Diese Funktion registriert eine Klasse eines Common-Control-Steuerelementes. Sie kann dazu benutzt werden, um mit der CreateWindowEx-Funktion ein Steuerelement wie die ProgressBar, dasListview-Steuerelement oder ähnliches zu erstellen.


    Parameter:

    lpInitCtrlsErwartet eine INITCOMMONCONTROLSEX_TYPE-Struktur, die Informationen über das zuregistrierende Steuerelement enthält.


    Rückgabewert:

    Ist die Funktion erfolgreich, so liefert sie einen Wert "ungleich 0", andernfalls ist der Rückgabewert "0".


    Beispiel:
    ' schreiben Sie bitte den folgenden Code in eine Klasse
    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 ' Status Bar-, Trackbar- und Toolbar-Klassen
    Private Const ICC_COOL_CLASSES = &H400 ' Rebar-Klasse
    Private Const ICC_DATE_CLASSES = &H100 ' Date- und Time-Picker- 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 ' Progress Bar-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
    ' Progressbar und CommandButton 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 4.971 mal aufgerufen.

    nach obenzurück
     
       

    Druckansicht Druckansicht Copyright ©2000-2015 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