_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:См. также
Пример
; 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