Что нового

Как узнать активен ли GUICtrlCreateInput

Gilman

Новичок
Сообщения
16
Репутация
0
Хочу реализовать кнопку, для вставки данных в несколько input элементов из буфера обмена. Что бы по нажатию вставлялось туда, где находится активный input элемент.
Каким образом можно узнать какой из input елементов активирован?
 
Автор
G

Gilman

Новичок
Сообщения
16
Репутация
0
я пытался воспользоваться этой функцией, но не понял как она работает, ответ все время 80 получаю, отмечен он или нет
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
При нажатии F1 покажет, какой из Edit в фокусе
Код:
HotKeySet("{F1}", "Focus")

$gui = GUICreate("")
GUICtrlCreateInput("", 10, 10)
GUICtrlCreateInput("", 10, 40)
GUISetState()

Do
Until GUIGetMsg() = -3

Func Focus()
  MsgBox(0, "", ControlGetFocus($gui))
EndFunc
Но с кнопкой будут проблемы, т.к. при нажатии на кнопку сама кнопка будет в фокусе.

Если вы работаете с буфером обмена, то достаточно отправить Shitf+Ins и окно само вставит информацию в элемент, находящийся в фокусе ввода.
 
Автор
G

Gilman

Новичок
Сообщения
16
Репутация
0
Хотя соглашусь, чтт вставка используя эмцляцию клавиш практичнее, спасибо за наводку
 
A

Alofa

Гость
Может лучше так? (нет возможности проверить)
Код:
Local = $hGui, $iLabel1, $iLabel2, $iButton, $iCtrlId
$hGui = GUICreate("")
$iLabel1 = GUICtrlCreateInput("", 10, 10)
$iLabel2 = GUICtrlCreateInput("", 10, 40)
$iCtrlId = $iLabel1
$iButton = GUICtrlCreateButton("Из буфера", 10, 70) 
GUISetState()

While 1
   $iMsg = GUIGetMsg() 
    Switch $iMsg
        Case $iLabel1, $iLabel2
            $iCtrlId = $iMsg
        Case $iButton
           GUICtrlSetData($iCtrlId, ClipGet( ))
        Case $GUI_EVENT_CLOSE 
            Exit
    EndSwitch 
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Alofa
Сообщения от Input действительно приходят при потере им фокуса ввода. НО. Только в случае, если в Input произошли изменения.

Честно говоря, никогда не понимал данной реализации. Было бы лучше получать сообщения непосредственно при изменениях (EN_CHANGE), но... разработчик решил по другому.
 
A

Alofa

Гость
OffTopic:
InnI сказал(а):
Честно говоря, никогда не понимал данной реализации...
Я тоже. Зачем влезать через форточку, когда можно войти в дверь.
 
Верх