Функция _GUICtrlFinder_Create

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


_GUICtrlFinder_Create

Создаёт элемент поиска, инициализирует класс если необходимо.

#include <GUIFinder.au3>
_GUICtrlFinder_Create ( $hWnd , $iX , $iW [, $iWidth = 32 [, $iHeight = 32 ]] )

Параметры

$hWnd Дескриптор родительского окна
$iX Координата левого края
$iW Координата верхнего края
$iWidth [необязательный] Ширина элемента (по умолчанию 32)
$iHeight [необязательный] Высота элемента (по умолчанию 32)

Возвращаемое значение

Успех:Возвращает дескриптор созданного элемента
Ошибка:Возвращает 0 и устанавливает @error:
@error:1 - Неверно указано родительское окно
2 - Не удаётся зарегистрировать функцию OnExit
3 - Не удаётся зарегистрировать процедуру окна.
4 - Не удаётся зарегистрировать класс окна. @extended содержит код ошибки @error возвращённый DllCall
5 - Ошибка, созданная при создании идентификатора элемента. @extended содержит код ошибки @error возвращённый __UDF_GetNextGlobalID.
4 - Не удаётся создать окно. @extended содержит код ошибки @error возвращённый _WinAPI_CreateWindowEx

Примечания

Эта функция может сбоить, если скрипт обфуцирован, так как она передаёт имена функций в виде строк. Если Вам нужно обфуцировать скрипт, тогда добавьте следующие функции в директиве игнорирования имён функций #Obfuscator_Ignore_Funcs:
__GUICtrlFinder_OnExit
__GUICtrlFinder_WndProc

См. также

Пример

; Mat
; http://www.autoitscript.com/forum/topic/130573-guifinderau3-v2/
#include <GUIFinder.au3>

$hGUI = GUICreate("_GUICtrlFinder_Create", 300, 40)

$hFinder = _GUICtrlFinder_Create($hGUI, 4, 4)

$hBtn = GUICtrlCreateButton("Дескриптор", 40, 6, 80, 30)
$hInp = GUICtrlCreateInput("", 124, 10, 170, 20)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3
            ExitLoop
        Case $hBtn
            $hWnd = _GUICtrlFinder_GetLastWnd($hFinder)
            If $hWnd Then
                GUICtrlSetData($hInp, "Дескриптор: " & $hWnd)
            Else
                MsgBox(16, "Ошибка", "Сначала захватите окно с помощью элемента поиска")
            EndIf
    EndSwitch
WEnd