Access

  MS Access 2010+  |  Aplication Programming Interface API  |   VBA 7.0

• API. Funkcje zarządzania oknami.

Wyszukiwanie okien dzieci w oknie rodzica.

Czasami potrzebujemy przeszukać okno nadrzędne (rodzica), by dowiedzieć się jakie okna potomne (dzieci) zawiera przeszukiwane okno (rodzica), a raczej jakie uchwyty mają szukane okna potomne. Mając uchwyt okna możemy pobrać za pomocą innych funkcji API interesujące nas właściwości okna. Funkcja, która umożliwia nam takie wyszukiwanie okien, to FindWindowEx(...).

Opis funkcji API FindWindowEx (...)

Funkcja FindNextFile(...) przeszukuje okna potomne (dzieci) okna nadrzędnego (rodzica), zaczynając od okna występującym po określonym oknie potomnym. Zwraca ona uchwyt okna, którego nazwa klasy i (lub) tytuł okna pasują do przekazanych w argumentach ciągów znaków.
Funkcja nie uwzględnia wielkość liter.

Public Declare Function FindWindowEx Lib "user32" _
               Alias "FindWindowExA" ( _
               ByVal hWndParent As Long, _
               ByVal hWndChildAfter As Long, _
               ByVal lpszClass As String, _
               ByVal lpszWindow As String) As Long
  • argumenty:
    • hWndParent
    • Uchwyt do okna nadrzędnego, którego okna potomne mają być przeszukiwane.
      Jeśli argument hwndParent jest równy Zero, funkcja rozpoczyna przeszukiwanie od okna pulpitu jako okna nadrzędnego (rodzica) szukając okien potom (dzieci) okna pulpitu. Jeżeli argument hwndParentma wartość HWND_MESSAGE = (-&H3), funkcja poszukuje tylko okien komunikatów.
    • hWndChildAfter
    • Uchwyt do okna potomnego określający kierunek wyszukiwania. Wyszukiwanie rozpoczyna się od następnego okna potomnego w kolejności przesłaniania na osi Z (Z Order). Oś Z to wirtualna oś biegnąca na zewnątrz prostopadle do ekranu, na której w „stosie” umieszczone są okna potomne. Okno potomne musi być bezpośrednim oknem potomnym okna nadrzędnego hwndParent, a nie „tylko” oknem potomnym.
      Jeżeli wartość tego argumentu wynosi Zero, szukanie rozpoczyna się od pierwszego okna potomnego okna nadrzędnego o uchwycie hwndParent.
    • lpszClass
    • Jeżeli argument lpszClass jest ciągiem znaków, określa nazwę klasy szukanego okna potomnego. Jeżeli wartość tego argumentu wynosi vbNullChar, wyszukiwane są kolejne okna potomne bez względu na klasę okna.
    • lpszWindow
    • Tytuł okna (nazwa) okna. Jeżeli argument lpszWindow jest ciągiem znaków, funkcja FindWindowEx wywołuje funkcję GetWindowText(...), aby pobrać tytuł (nazwę) okna do porównania. Jeżeli wartość tego argumentu wynosi vbNullChar, wyszukiwane są kolejne okna potomne bez względu na tytuł (nazwę) okna.
  • zwraca:
  • Przy powodzeniu, zwraca uchwyt okna o określonej nazwie klasy i tytule (nazwy) okna. Przy niepowodzeniu funkcja zwraca 0. Aby uzyskać rozszerzoną informację o zaistniałym błędzie, należy wywołać funkcję GetLastError.