Автор Тема: Как передать сразу фокус кнопке в GUI  (Прочитано 1113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Как передать сразу фокус кнопке в GUI ? Чтобы можно было применять Enter.  Почему-то фокус идет на GUICreate при открытии окна ?
(нажмите для показа/скрытия)
Если бы один пример - было бы волшебно...для новичка

Русское сообщество AutoIt

Как передать сразу фокус кнопке в GUI
« Отправлен: Ноябрь 07, 2017, 22:23:03 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 392
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #1, Отправлен: Ноябрь 07, 2017, 23:27:00 »
dr.room
Справка GUICtrlSetState
« Последнее редактирование: Ноябрь 08, 2017, 12:10:37 от Tempo »

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #2, Отправлен: Декабрь 27, 2017, 19:46:29 »
dr.room
Справка GUICtrlSetState

Спасибо
А скажете зачем нужен параметр: -1
Код: AutoIt [Выделить]
GUICtrlSetState(-1, $GUI_FOCUS)
 


Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 392
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #3, Отправлен: Декабрь 27, 2017, 20:14:34 »
dr.room, если использовать -1 вместо controlID функция будет действовать на последний созданный элемент GUI

Русское сообщество AutoIt

Re: Как передать сразу фокус кнопке в GUI
« Ответ #3 Отправлен: Декабрь 27, 2017, 20:14:34 »

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #4, Отправлен: Декабрь 27, 2017, 20:59:14 »
dr.room, если использовать -1 вместо controlID функция будет действовать на последний созданный элемент GUI
Спасибо
Что значит последний: Вы имеете в виду элемент, непосредственно под которым прописывается  функция GUICtrlSetState ?
Относительно ID элемента: кажется понял  - нужно смотреть Au3Info.exe раздел Contra/id

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 392
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #5, Отправлен: Декабрь 27, 2017, 21:05:04 »
dr.room, для последнего элемента созданного с помощью функций GUICtrlCreate... Так же функции GUICtrlCreate... возвращают controlID для последующего обращения к этим элементам. Вам стоит почитать справку Описание GUI

Au3Info используют если нужно получить информацию о чужих элементах управления, а не созданных собственным скриптом
« Последнее редактирование: Декабрь 27, 2017, 21:12:42 от Tempo »

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1420
  • Репутация: 207
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #6, Отправлен: Декабрь 27, 2017, 22:04:07 »
dr.room вы путаете функции из раздела "Окна" и функции из "GUI".
За каждым окном в ОС стоит программа его породившая. Так вот, если эта программа уже скомпилирована и вы не можете повлиять на ее окно "изнутри", то остается вариант управлять им "снаружи" через Win-функции (раздел справки "Окна") и некоторые _WinAPI...
В Autoit есть инструменты для создания своих окон, а вы как разработчик здесь бог и царь - творите что душе угодно, т.е. у вас есть возможность создавать и изменять окна (свои) "изнутри" программы, для этого и существуют GUI-функции.

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #7, Отправлен: Декабрь 27, 2017, 22:43:42 »
Tempo
Я немного запутался
Вот я добавил еше 1 элемент GUICtrlCreate он идет последним, но
Код: AutoIt [Выделить]
GUICtrlSetState(-1, $GUI_FOCUS)

разместил не за GUICtrlCreate 2 а за предыдущим GUICtrlCreate. По идее в фокусе должна была оказаться кнопка 2, та как это "последний" элемент GUI, но оказалась кнопка 1  :stars:  Как же так ?
(нажмите для показа/скрытия)

Alofa
Спасибо, кажется я понял различие возможностей управления.


Русское сообщество AutoIt

Re: Как передать сразу фокус кнопке в GUI
« Ответ #7 Отправлен: Декабрь 27, 2017, 22:43:42 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 392
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #8, Отправлен: Декабрь 27, 2017, 22:51:27 »
dr.room, по какой логике должна быть в фокусе кнопка 2? Скрипт выполняется построчно. На момент использования
Код: AutoIt [Выделить]
GUICtrlSetState(-1,$GUI_FOCUS)

последним был
Код: AutoIt [Выделить]
GUICtrlCreateButton("Кнопка с фокусом  1", 150, 140)


Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #9, Отправлен: Декабрь 28, 2017, 01:00:48 »
Tempo
Спасибо
В этом случае можно сказать так - с небольшим уточняющим условием: параметр -1 указывает на
  • последний GUICtrlCreate
  • на момент использования GUICtrlSetState
Я правильно понимаю ?

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1420
  • Репутация: 207
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #10, Отправлен: Декабрь 28, 2017, 02:47:23 »
... Скрипт выполняется построчно...
Т.е. сверху вниз, от первой строки к последней.

Как вы прочитаете построчно данный кусок вашего кода?
Код: AutoIt [Выделить]
; ...
GUICtrlCreateButton("Кнопка с фокусом  1", 150, 140)
GUICtrlSetState(-1,$GUI_FOCUS) ; устанавливает фокус на кнопку

GUICtrlCreateButton("Кнопка с фокусом  2", 150, 240)
; ...


Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 268

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как передать сразу фокус кнопке в GUI
« Ответ #11, Отправлен: Декабрь 29, 2017, 01:39:14 »
Ой - кажется я просто повторил что уже написал Tempo
Был как-то не очень внимателен - сори   :(
Всем спасибо

Русское сообщество AutoIt

Re: Как передать сразу фокус кнопке в GUI
« Ответ #11 Отправлен: Декабрь 29, 2017, 01:39:14 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
3310 Просмотров
Последний ответ Февраль 27, 2010, 22:04:10
от lightforever
0 Ответов
2999 Просмотров
Последний ответ Март 29, 2010, 20:32:01
от Kalisnik
3 Ответов
2908 Просмотров
Последний ответ Август 30, 2011, 13:57:24
от Suppir
2 Ответов
2197 Просмотров
Последний ответ Январь 30, 2012, 01:24:54
от Dm666
1 Ответов
2144 Просмотров
Последний ответ Июнь 26, 2012, 01:46:58
от running-frag
6 Ответов
3575 Просмотров
Последний ответ Декабрь 10, 2012, 11:30:14
от Zergii
3 Ответов
1845 Просмотров
Последний ответ Февраль 16, 2013, 14:17:48
от WSWR
3 Ответов
1498 Просмотров
Последний ответ Июль 02, 2014, 08:36:36
от madmasles
9 Ответов
1455 Просмотров
Последний ответ Октябрь 28, 2014, 19:02:40
от madmasles
8 Ответов
975 Просмотров
Последний ответ Апрель 25, 2017, 09:14:51
от musicstashall