Описание функции


EnumChildWindows

Перечисление дочерних окон для поиска по критерию.

EnumChildWindows(hwnd, @EnumChildProc(), @hfound)

Параметры

hwnd Дескриптор окна. Если 0, то рабочий стол, функция ведёт себя как EnumWindows()
@EnumChildProc() Имя функции обратного вызова
@hfound Указатель на данные куда будет помещён найденный дескриптор

Примечания

Если окно соответствует критерию, то необходимо выполнить ProcedureReturn 0, чтобы остановить перечисление, в противном случае использовать ProcedureReturn 1, чтобы продолжить для следующего окна. Нет необходимости проверять дескриптор hwnd в функции обратного вызова, так как функция сама заканчивает перечисление, когда все окна перечислены и больше окон нет.
В отличии от EnumWindows() при указаниии hwnd функция EnumChildWindows() перечисляет элементы окна (кнопки, чекбоксы и т.д.), так как они являются дочерними для родительского окна.

См. также

EnumWindows

Пример

Procedure EnumChildProc(hwnd.l, *hwnd)
    Protected classText${256} ; буфер
    GetClassName_(hwnd, @classText$, 256)
    If classText$ = "WindowClass_2"
        GetWindowText_(hwnd, @classText$, 256)
        If Left(classText$, 9) = "PureBasic"
            PokeL(*hwnd, hwnd)
            ProcedureReturn 0 ; останавливает перечисление
        EndIf
    EndIf
    ProcedureReturn 1 ; продолжает перечисление
EndProcedure

Define hwnd
EnumChildWindows_(0, @EnumChildProc(), @hwnd)
Debug hwnd