Что нового

GUICtrlCreateButton взаимодействия кнопки и программы в целом

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Код:
GUICreate("Координаты", 200, 200)
$L1 = GUICtrlCreateLabel("X=", 10, 10)
$L2 = GUICtrlCreateLabel("Y=", 60, 10)
$L3 = GUICtrlCreateButton ("Запомнить", 10,30)
$L4 = GUICtrlCreateButton ("Сброс", 100,30)
GUISetState(@SW_SHOW)

$Xp = Default
$Yp = Default

Do
    $Pos = MouseGetPos()
    If $Pos[0] <> $Xp Then
        GUICtrlSetData($L1, $Pos[0])
        $Xp = $Pos[0]
    EndIf
    If $Pos[1] <> $Yp Then
        GUICtrlSetData($L2, $Pos[1])
        $Yp = $Pos[1]
    EndIf
Until GUIGetMsg() = -3


Как сделать что бы именно на кнопку "запомнить" сохранялись координаты

$L5 = GUICtrlCreateLabel("X=", 10, 80)
$L6 = GUICtrlCreateLabel("Y=", 60, 80)

А на сброс сбрасывались. Не могу понятно принцип взаимодействия кнопки и программы в целом. Пробовал по другим скриптам подставлять по аналогии - не работает.

Мне этот скрипт не важен, просто на нем легче всего понять как работает.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Прочтите в справке
AutoIt->Function Reference->GUI Management->GUIGetMsg

Код:
GUICreate('Координаты', 200, 200)
$L1 = GUICtrlCreateLabel('X=', 10, 10, 85)
$L2 = GUICtrlCreateLabel('Y=', 105, 10, 85)
$L3 = GUICtrlCreateButton ('Запомнить', 10,30)
$L4 = GUICtrlCreateButton ('Сброс', 100,30)
GUISetState(@SW_SHOW)

$Xp = Default
$Yp = Default

While 1
	Switch GUIGetMsg()
		Case $L3
			$Pos = MouseGetPos()
			If $Pos[0] <> $Xp Then
				GUICtrlSetData($L1, 'X=' & $Pos[0])
				$Xp = $Pos[0]
			EndIf
			If $Pos[1] <> $Yp Then
				GUICtrlSetData($L2, 'Y=' & $Pos[1])
				$Yp = $Pos[1]
			EndIf

		Case $L4
			GUICtrlSetData($L1, 'X=')
			GUICtrlSetData($L2, 'Y=')

		Case -3
			Exit
	EndSwitch
WEnd
 
Верх