Что нового

[Элементы GUI] Созданные кнопки в GUI не реагируют на клики мыши

Rinfes

Новичок
Сообщения
25
Репутация
0
Здравствуйте. Возникает проблема с нажатиями кнопок в GUI мышью. Они не активны и никак не реагируют на клики. Но если выбрать элемент-кнопку с помощью TAB+ENTER, то все работает. Скорее всего проблема связана с координатами.


Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

#NoTrayIcon

Global $Button_1, $Button_2, $Button_3, $Button_4, $Button_5, $hGUI

$hGUI = GUICreate("Окошко GUI", 454, 450)
GUICtrlCreatePic(@ScriptDir & "\123.jpg", -1, -1, 454, 450)

Opt("GUICoordMode", 1)
$Button_1 = GUICtrlCreateButton("Игра", 10, 10, 120, 30)
$Button_2 = GUICtrlCreateButton("Количество игроков", 320, 10, 120, 30)
$Button_3 = GUICtrlCreateButton("Время", 10, 100, 120, 30)
$Button_4 = GUICtrlCreateButton("Оплата", 320, 100, 120, 30)
$Button_5 = GUICtrlCreateButton("Очистить", 170, 400, 120, 30)
GUISetState()


While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button_1
            MsgBox(0,"", "Нажата кнопка 1")
        Case $Button_2
            MsgBox(0,"", "Нажата кнопка 2")
        Case $Button_3
            MsgBox(0,"", "Нажата кнопка 3")
        Case $Button_4
            MsgBox(0,"", "Нажата кнопка 4")
        Case $Button_5
            MsgBox(0,"", "Нажата кнопка 5")
    EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Rinfes,
Читайте справку.
Код:
#NoTrayIcon

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $iButton_1, $iButton_2, $iButton_3, $iButton_4, $iButton_5, $hGUI

$hGUI = GUICreate("Окошко GUI", 454, 450)
GUICtrlCreatePic(@ScriptDir & "\123.jpg", -1, -1, 454, 450)
GUICtrlSetState(-1, $GUI_DISABLE)
$iButton_1 = GUICtrlCreateButton("Игра", 10, 10, 120, 30)
$iButton_2 = GUICtrlCreateButton("Количество игроков", 320, 10, 120, 30)
$iButton_3 = GUICtrlCreateButton("Время", 10, 100, 120, 30)
$iButton_4 = GUICtrlCreateButton("Оплата", 320, 100, 120, 30)
$iButton_5 = GUICtrlCreateButton("Очистить", 170, 400, 120, 30)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $iButton_1
            MsgBox(0,"", "Нажата кнопка 1", 0, $hGUI)
        Case $iButton_2
            MsgBox(0,"", "Нажата кнопка 2", 0, $hGUI)
        Case $iButton_3
            MsgBox(0,"", "Нажата кнопка 3", 0, $hGUI)
        Case $iButton_4
            MsgBox(0,"", "Нажата кнопка 4", 0, $hGUI)
        Case $iButton_5
            MsgBox(0,"", "Нажата кнопка 5", 0, $hGUI)
    EndSwitch
WEnd
 
Автор
Rinfes

Rinfes

Новичок
Сообщения
25
Репутация
0
Спасибо. Все работает. Так же спасибо за некоторые "дополнения" к коду. Взял на заметку. И правильно ли я понял, что из-за добавленной картинки фоном, я щелкал по картинке, а не по кнопкам. Поэтому эту картинку нужно сделать неактивной.

OffTopic:
Я пишу небольшую программу для автоматизирования некоторых действий человека. Скорее всего будет возникать много вопросов. Как лучше сделать. Каждый раз создавать новую тему под новый вопрос. Или создать одну тему, в которой я бы задавал свои вопросы.
 
Верх