1

Тема: AHK: изображения в GUI (мигания при guicontrol)

Читал офф форум, там решения не нашел, может у нас кто знает.
Есть картинка. Добавляю ее в GUI. Сверху накладываю такую же картинку. При нажатии на вторую картинку, которая сверху, она должна скрываться, при отпускании Lbutton - появляться опять.
Казалось ничего происходить не должно, т.к. две одинаковые картинки наложены друг на друга, и если убрать ту, что сверху, то ничего происходить не должно.
На тут получается небольшое мигание, в результате чего виден фон GUI. Это происходит не всегда, иногда после первого нажатия, иногда после 10-20 быстрых нажатий.
Есть решения?


If !FileExist("1.jpg")
   URLDownloadToFile, http://onemove.ru/get/27414, 1.jpg

   Gui, add, picture, w100 h100 x100 y100 gLabel, 1.jpg
   Gui, add, picture, w100 h100 x100 y100 gLabel, 1.jpg
   gui, show, w300 h300, GUI
Return

Label:
   GuiControl, hide, static2
   While GetKeyState("lbutton", "P")
   sleep 100
   GuiControl, show, static2
Return

2

Re: AHK: изображения в GUI (мигания при guicontrol)

Как бы имитируете вдавливание кнопки в панель?

3 (изменено: InFlames, 2010-11-20 17:36:20)

Re: AHK: изображения в GUI (мигания при guicontrol)

Да. В этой теме помогли разобраться как сделать фон картинки прозрачным. Теперь надо разобраться как избавиться от мигания кнопок. Хочу создать скин для GUI.
Читал на офф форуме, что GuiControl перерисовывает элементы, в результате чего появляется мигание. Писали, что может помочь AltSubmit, но не помогло.
Может есть другие варианты?

4

Re: AHK: изображения в GUI (мигания при guicontrol)

Есть, но относительно сложные . Нужно использовать "layered windows" и GDI+.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: изображения в GUI (мигания при guicontrol)

Вообще, вот такой код работает, хотя я и сам не вполне понимаю, как.

   Gui, add, picture, w100 h900 x100 y100 , 1.jpg
   Gui, add, picture, w100 h900 x100 y100 gLabel, 2.jpg
   gui, show, w300 h900, GUI
Return

Label:
   GuiControl, hide, static2
sleep, 50
   While GetKeyState("lbutton", "P")
   sleep 0
   GuiControl, show, static2
Return

При мигании видно не фон GUI, а нижнюю картинку. Причём вероятность увидеть мигание тем больше, чем больше высота картинки (у меня ЖК монитор). Так что я не понял, почему без sleep работает не как задумано.

6

Re: AHK: изображения в GUI (мигания при guicontrol)

Ещё бы знать, что такое здесь 2.jpg, чтобы можно было проверить!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: изображения в GUI (мигания при guicontrol)

Ну это тот же самый, 1.jpg, но другого цвета.

8

Re: AHK: изображения в GUI (мигания при guicontrol)

У меня так же точно мелькает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: изображения в GUI (мигания при guicontrol)

Я так понимаю без внешних библиотек не обойтись. Жаль, что такая простая вещь работает немного криво.