Всем привет!
Есть элемент, созданный при помощи Autoit, например Input1, т.е. я знаю ID элемента, его хэндл, а как узнать в фокусе ли элемент? Вроде не сложная задача, но как-то не решается...
В ниже приведенном примере, зная ClassNameNN, я могу определить фокус элемента, но это как-то не универсально, т.к. ClassNameNN может быть любой, в зависимости от последовательности создания элементов на форме.
Можно ли определить наличие фокуса зная только ID элемента/хэндл или как мне программно узнать ClassNameNN элемента?
Есть элемент, созданный при помощи Autoit, например Input1, т.е. я знаю ID элемента, его хэндл, а как узнать в фокусе ли элемент? Вроде не сложная задача, но как-то не решается...
В ниже приведенном примере, зная ClassNameNN, я могу определить фокус элемента, но это как-то не универсально, т.к. ClassNameNN может быть любой, в зависимости от последовательности создания элементов на форме.
Можно ли определить наличие фокуса зная только ID элемента/хэндл или как мне программно узнать ClassNameNN элемента?
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
HotKeySet("{F1}", "GetFocus")
$Form1 = GUICreate("Form1", 251, 142, 349, 207)
$Input1 = GUICtrlCreateInput("Input1", 8, 16, 121, 21)
$hInput1=GUICtrlGetHandle($Input1)
$Input2 = GUICtrlCreateInput("Input2", 8, 56, 121, 21)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func GetFocus()
If ControlGetFocus($Form1)='Edit1' Then
MsgBox(0,'','$Input1 - в фокусе')
Else
MsgBox(0,'','$Input1 - не в фокусе')
EndIf
EndFunc