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  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2020
 
zurück
Rubrik: Fenster22.03.05
GetWindow-Funktion

Diese Funktion ermittelt Fensterhandles von Fenstern, die dem selben Fenster in einer Z-Order Reihenfolge untergeordnet sind.

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

Deklaration:

Declare Function GetWindow Lib "user32.dll" ( _
  ByVal hwnd As Long, _
  ByVal wCmd  As Long) As Long

Beschreibung:
Diese Funktion ermittelt Fensterhandles von Fenstern, die dem selben Fenster in einer Z-OrderReihenfolge untergeordnet sind.

Parameter:
hwndErwartet ein Fensterhandle, das dazu benutzt wird, andere Fensterhandles von Fenstern zu ermitteln, die dem selben "Eltern"-Fenster untergeordnet sind.
wCmdErwartet eine der "wCmd"-Konstanten, diebeschreibt, welches Fensterhandle aus der Z-Order der Fenster ermittelt werden soll.

wCmd Konstanten:

Const GW_HWNDFIRST = 0
' Ermittelt das erste Fenster aus der Z-Order, in dem sich das angegebene Fenster befindet
 
Const GW_HWNDLAST = 1
' Ermittelt das letzte Fenster aus der Z-Order, in dem sich das angegebene Fenster befindet
 
Const GW_HWNDNEXT = 2
' Ermittelt das nächste Fenster aus der Z-Order, in dem sich das angegebene Fenster befindet
 
Const GW_HWNDPREV = 3
' Ermittelt das vorherige Fenster aus der Z-Order, in dem sich das angegebene Fenster befindet
 
Const GW_OWNER = 4
' Ermittelt das Fensterhandle des Fenster, welches dem angegebenen übergeordnet ist
 
Const GW_CHILD = 5
' Ermittelt das Fensterhandle des Kindfensters, welches sich im Vordergrund befindet und / oder den Focus besitzt

Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe das Fensterhandle des ermittelten Fensters, andernfallswird der Wert "0" zurückgegeben.

Beispiel:

Private Declare Function GetWindow Lib "user32.dll" ( _
  ByVal hwnd As Long, _
   ByVal wCmd As Long) As Long
Private Declare Function GetClassInfoEx Lib "user32.dll" _
  Alias "GetClassInfoExA" ( _
  ByVal hinst As Long, _
  ByVal lpszClass As String, _
  lpwcx As WNDCLASSEX) As Long
Private Declare Function GetWindowLong Lib "user32" _
  Alias "GetWindowLongA"  ( _
  ByVal hwnd As Long, _
  ByVal nIndex As Long) As Long
Private Declare Function GetClassName Lib "user32" _
  Alias "GetClassNameA"  ( _
  ByVal hwnd As Long, _
  ByVal lpClassName As String, _
  ByVal nMaxCount As Long)  As Long
 
Private Type WNDCLASSEX
  cbSize As Long
  style As Long
  lpfnWndProc As Long
  cbClsExtra As Long
  cbWndExtra As Long
  hInstance As Long
  hIcon As Long
  hCursor As Long
  hbrBackground As Long
  lpszMenuName As String
  lpszClassName As String
  hIconSm As Long
End Type
 
' GetWindow wCmd-Konstanten
Private Const GW_HWNDFIRST = 0 ' Ermittelt das erste Fenster aus der Z-Order,  
' in dem sich das angegebene Fenster befindet
Private Const GW_HWNDLAST = 1 ' Ermittelt das letzte Fenster aus der Z-Order,  
' in dem sich das angegebene Fenster befindet
Private Const GW_HWNDNEXT = 2 ' Ermittelt das nächste Fenster aus der Z-Order,
' in dem sich das angegebene Fenster befindet
Private Const GW_HWNDPREV = 3 ' Ermittelt das vorherige Fenster aus der Z-Order,
' in dem sich das angegebene Fenster befindet
Private Const GW_OWNER = 4 ' Ermittelt das Fensterhandle des Fenster, welches  
' dem angegebenen übergeordnet ist
Private Const GW_CHILD = 5 ' Ermittelt das Fensterhandle des Kindfensters,  
' welches sich im Vordergrund befindet und / oder den Focus besitzt
 
' eine der GetWIndowLong nIndex-Konstanten
Private Const GWL_HINSTANCE = (-6)
' Ermittelt alle Kindfenster der Form in Z-Order-Reihenfolge von hinten nach vorn 
Private Sub Command1_Click()
  Dim RetHwnd As Long, FensterKlasse As WNDCLASSEX
  Dim ClassName As String, hInstance As Long
 
  FensterKlasse.cbSize = Len(FensterKlasse)
 
  ' erstes Kindfenster in der Kindfenster-Z-Order ermitteln
  RetHwnd = GetWindow(Me.hwnd, GW_CHILD)
  RetHwnd = GetWindow(RetHwnd, GW_HWNDFIRST)
 
  If RetHwnd << 0 Then
    With FensterKlasse
      Do
 
        ' Klassennamen ermitteln
        ClassName = Space(256)
        Call GetClassName(RetHwnd, ClassName, Len(ClassName))
        ClassName = Left$(ClassName, InStr(1, ClassName,  _
        vbNullChar) - 1)
 
        ' Instanz ermitteln
        hInstance = GetWindowLong(RetHwnd, GWL_HINSTANCE)
 
        ' Fensterklasseninformationen ermitteln
        Call GetClassInfoEx(hInstance, ClassName, FensterKlasse)
 
        ' Informationen über die Fensterklasse des Fensters ausgeben 
        Debug.Print "Klassenname: " & ClassName
        Debug.Print "Icon Handle: " & .hIcon
        Debug.Print "Kleiner Icon Handle: " & .hIconSm
        Debug.Print "Cursor Handle: " & .hCursor
 
        ' Nächstes Kindfenster ermitteln
        RetHwnd = GetWindow(RetHwnd, GW_HWNDNEXT)
 
      Loop Until RetHwnd = 0
    End With
  End If
End Sub

Diese Seite wurde bereits 20.718 mal aufgerufen.

nach obenzurück
 
   

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