Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long
GetTopWindow ищет дескриптор первого дочернего окна, принадлежащего заданному окну. Первое дочернее окно - окно, имеющее фокус и находящееся, обычно, поверх остальных дочерних окон в Z-порядке. Эта функция работает, даже если родительское окно не активно
В случае ошибки или если окно не имеет дочерних окон, функция возвращает Null (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор первого дочернего окна в Z-порядке
' Блокируем кнопку, ' являющейся активным дочерним окном формы ' Для примера создайте на форме две кнопки Dim active As Long ' дескриптор родительского окна (т.е формы) Dim retval As Long ' возвращаемое значение ' Получим дескриптор дочернего окна, т.е кнопки active = GetTopWindow(Form1.hWnd) If active <> 0 Then ' Отключаем кнопку retval = EnableWindow(active, 0) End If