Tekst informacyjny o polityce Cookies Close   
Banner Access
separator

Opis funkcji API umożliwiających odczyt i zmianę
niektórych właściwości okien.

Private Declare Function GetActiveWindow Lib "user32" () As Long
Zwraca uchwyt aktywnego okna, przy niepowodzeniu zwraca Null (Zero)

hWind = GetActiveWindow
Private Declare Function GetFocus Lib "user32" () As Long
Zwraca uchwyt okna mającego fokus, przy niepowodzeniu zwraca Null (Zero)
Me.ctlName.SetFocus
hWind = GetFocus
Private Declare Function GetWindowTextLength Lib "user32" Alias _
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Zwraca długość tekstu okna, jeżeli okno nie zawiera tekstu zwraca ZERO
hwnd - uchwyt okna

lLenText = GetWindowTextLength(Me.hwnd)
Private Declare Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
Zwraca długość tekstu okna (bez znaku końca - vbNullChar), przy niepowodzeniu zwraca ZERO
hwnd - uchwyt okna
lpString - wskaźnik do buforu tekstu
cch - maksymalna ilość znaków do skopiowania

' lLenText zwraca wcześniej wywołana funkcja GetWindowTextLength(Me.hwnd)
sText = String(lLenText, vbNullChar)
lLenText = GetWindowText(Me.hwnd, sText, lLenText + 1)
sText = Left$(sText, lLenText)
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
(ByVal hWnd As Long, ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long
Zwraca długość tekstu okna (bez znaku końca - vbNullChar), przy niepowodzeniu zwraca ZERO
hWnd - uchwyt okna
lpClassName - wskaźnik do buforu tekstu
nMaxCount - maksymalna ilość znaków do skopiowania

Const cBfSize As Long = 256
sBfClass = String(cBfSize, vbNullChar)
lLenText = GetClassName(Me.hwnd, sBfClass, cBfSize)
sClassName = Left$(sBfClass, lLenText)
Private Declare Function GetDlgCtrlID Lib "User32" (ByVal hWnd As Long) As Long
Zwraca identyfikator okna, przy niepowodzeniu zwraca ZERO
hWnd - uchwyt okna

lID = GetDlgCtrlID(Me.hwnd)
Private Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, _
ByVal nIDDlgItem As Long) As Long
Zwraca uchwyt okna dziecka o identyfikatorze nIDDlgItem, przy niepowodzeniu zwraca Null (Zero). Okno hDlg musi posiadać potomka (dziecko)
hDlg - uchwyt okna posiadającego potomka (dziecko)
nIDDlgItem - identyfikator potomka (dziecka)

hChild = GetDlgItem(hwnd, nIDDlgItem)
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, _
ByVal wCmd As Long) As Long
Zwraca uchwyt okna w/g pozycji nakładających się okien (Z order), lub uchwyt właściciela (Ovner), przy niepowodzeniu zwraca Null (Zero)
hWnd - uchwyt okna
uCmd - zależność pomiędzy oknem hWnd, a oknem którego uchwyt chcemy uzyskać
GW_HWNDFIRST = 0Zwraca uchwyt okna takiego samego typu w hierarchii, ale będące na najwyższym poziomie (Z-order).
GW_HWNDLAST = 1Zwraca uchwyt okna takiego samego typu w hierarchii, ale będące na najniższym poziomie (Z-order).
GW_HWNDNEXT = 2Zwraca uchwyt okna takiego samego typu w hierarchii, ale będące poniżej na poziomie (Z-order).
GW_HWNDPREV = 3Zwraca uchwyt okna takiego samego typu w hierarchii, ale będące powyżej na poziomie (Z-order).
GW_OWNER = 4Zwraca uchwyt okna będącego właścicielem okna, jeżeli istnieje
GW_CHILD = 5Zwraca uchwyt dziecka najwyższego poziomu. Jeżeli okno (hwnd) nie jest rodzicem zwraca Null (Zero). Nie są przeszukiwane okna będące następnymi potomkami okna dziecka.

hWind = GetWindow(Me.hwnd, GW_CHILD)
hWind = GetWindow(hWind , GW_HWNDNEXT) ...itd.
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, _
ByVal nCmdShow As Long) As Long
Jeżeli okno było widoczne zwraca wartość różną od Zera, jeżeli było ukryte zwraca ZERO
hWnd - uchwyt okna
nCmdShow - sposób pokazania okna

lRet = ShowWindow (Me.hwnd, SW_HIDE)
SW_HIDE = 0ukrywa okno i aktywuje następne
SW_SHOWNORMAL = 1aktywuje i wyświetla okno, przywraca rozmiar i położenie dla okien zmaksymalizowanych lub zminimalizowanych
SW_SHOWMINIMIZED = 2aktywuje i wyświetla zminimalizowane okno
SW_SHOWMAXIMIZED = 3aktywuje i wyświetla zmaksymalizowane okno
SW_MAXIMIZE = SW_SHOWMAXIMIZED
SW_SHOWNOACTIVATE = 4wyświetla okno w ostatnim położeniu. Okno aktywne jest dalej oknem aktywnym
SW_SHOW = 5aktywuje i wyświetla okno, zachowuje bieżącą wielkość i położenie
SW_MINIMIZE = 6minimalizuje okno i aktywuje następne w/g Z-Order
SW_SHOWMINNOACTIVE = 7wyświetla okno jako zminimalizowane, aktualnie aktywne okno jest dalej oknem aktywnym
SW_SHOWNA = 8wyświetla okno zachowując bieżącą wielkość i położenie, aktywne okno jest dalej oknem aktywnym
SW_RESTORE = 9aktywuje i wyświetla okno. Jeżeli okno jest zminimalizowane lub zmaksymalizowane przywracana jest oryginalna wielkość
SW_SHOWDEFAULT = 10pokazuje okno w oparciu o strukturę STARTUPINFO
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Blokuje lub umożliwia dostęp do okna poprzez mysz i klawiaturę. Jeżeli okno było wcześniej zablokowane zwraca ZERO, w przeciwnym wypadku zwraca wartość różną od Zera.
hWnd - uchwyt okna
fEnable = TRUE - okno zostanie odblokowane, FALSE - okno zostanie zablokowane

lRet = EnableWindow (Me.hwnd, False)
Private Declare Function MoveWindow Lib "user32" (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
Zmienia położenie i rozmiar okna. Dla okna na najwyższym poziomie położenie odnosi się do lewego górnego narożnika ekranu. Dla okien potomnych okno jest ustawiane w/m lewego górnego narożnika okna rodzica. Przy niepowodzeniu zwraca Zero, w przeciwnym wypadku wartość różną od Zera
hWnd - uchwyt okna
x - współrzędna X nowego położenie lewej krawędzi okna
y - współrzędna Y nowego położenie górnej krawędzi okna
nWidth - nowa szerokość okna
nHeight - nowa wysokość okna
bRepaint - dla wartości 1 okno (ekran) zostanie odświeżone, dla wartości 0 - bez odświeżania

lRet = MoveWindow(Me.hwnd, 200, 200, 100, 50, True)
Private Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" _
(ByVal hwnd As Long lpRect As RECT) As Long
Przy niepowodzeniu zwraca Zero, w przeciwnym wypadku wartość <> 0
hWnd - uchwyt okna
lpRect - wskaźnik do struktury RECT zawierającej współrzędne okna

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Dim rct As RECT
lRet = GetWindowRect (hWnd, rct)
Debug.Print rct.Left; rct.Top; rct.Right; rct.Bottom
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Zwraca uchwyt okna, które jest rodzicem okna. Jeżeli okno nie ma rodzica zwraca Null (Zero)
hWnd - uchwyt okna dziecka

hParent = GetParent(Me.hwnd)

separator