Что нового

Как получать и обновлять состояние Chexbox'a?

P@S@f

Новичок
Сообщения
44
Репутация
2
Хотелось-бы узнать, коим образом можно получить состояние Chexbox'a(вкл/выкл) и обновлять его?
Подскажите, пожалуйста, лучшее решение этой задачи.
З.Ы. Пробовал по аналогии со слайдером через $GUI_CHECKED вот так:
Код:
GUIRegisterMsg($GUI_CHECKED, "BM_GETCHECK")
$onbox = GUICtrlCreateCheckbox("On", 0, 0)
$omg = GuiCtrlCreateLabel("0", 5, 20)
GUISetState()
;_MemoryWrite("0x" & $FHackAddress, $ProcInf, 201, 'short')
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Func BM_GETCHECK($hWndGUI, $MsgID, $WParam)
	$onboxst = GUICtrlRead($onbox)
	GUICtrlSetData($omg, $onboxst)
EndFunc

Почему-то получаю ошибку:
Код:
Variable used without being declared.:
$onboxst = GUICtrlRead($onbox)
$onboxst = GUICtrlRead(^ ERROR

Хотя, как видите, переменная описана выше и ей присвоено значение ID Checkbox'a. Со слайдером такой проблемы не возникало.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
1. RegisterMsg должен вызываться после создания формы. (я так думаю.)
2. Объяви $onbox - в пространстве глобальных переменных. Иначе функция его не увидит.
Код:
Global $onbox = GUICtrlCreateCheckbox("On", 0, 0)
 
Автор
P

P@S@f

Новичок
Сообщения
44
Репутация
2
Первое - помогло :ok:
Второе - не понадобилось.
Но вот проблема: значение на лейбле всё-равно не обновляется. :(
 
Автор
P

P@S@f

Новичок
Сообщения
44
Репутация
2
И ключи от квартиры, где деньхи лежат? ;D
Код:
GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
GuiCreate(Default, 50, 200)
GUIRegisterMsg($GUI_CHECKED, "BM_GETCHECK")
$onbox = GUICtrlCreateCheckbox("On", 0, 0)
$omg = GuiCtrlCreateLabel("0", 5, 20)
$slider = GuiCtrlCreateSlider(10, 31, 30, 165, 0x0002)
GUICtrlSetLimit($slider, 1500)
$heightl = GuiCtrlCreateLabel($Height - 16500, 12, 187, 25)
GuiCtrlSetData($slider, $Height - 16500)
GUISetState()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Func BM_GETCHECK($hWndGUI, $MsgID, $WParam)
	$onboxst = GUICtrlRead($onbox)
	GUICtrlSetData($omg, $onboxst)
EndFunc
Func WM_VSCROLL($hWndGUI, $MsgID, $WParam)
	$SetHeight = 1500 - GUICtrlRead($slider)
	GUICtrlSetData($heightl, $SetHeight)
EndFunc
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Exit
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;

GUICreate("", 50, 200)

$onbox = GUICtrlCreateCheckbox("On", 0, 0)
$omg = GUICtrlCreateLabel("0", 5, 20)

$slider = GUICtrlCreateSlider(10, 31, 30, 165, 0x0002)
GUICtrlSetLimit($slider, 1500)

$heightl = GUICtrlCreateLabel(20, 12, 187, 25)

GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $onbox
			$onboxst = Number(GUICtrlRead($onbox) = $GUI_CHECKED)
			GUICtrlSetData($omg, $onboxst)
	EndSwitch
WEnd

Func WM_VSCROLL($hWndGUI, $MsgID, $WParam, $LParam)
	$SetHeight = 1500 - GUICtrlRead($slider)
	GUICtrlSetData($heightl, $SetHeight)
EndFunc
 
Верх