Что нового

[Элементы GUI] Как выключить TCheckbox

Dimmak

Знающий
Сообщения
185
Репутация
9
Подскажите, пожалуйста, как снять галку с TCheckbox? :-\
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Form1", 283, 106, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 24, 56, 97, 17)
$Button1 = GUICtrlCreateButton("Button1", 152, 56, 75, 25)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			GUICtrlSetState($Checkbox1,$GUI_UNCHECKED)
	EndSwitch
WEnd
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Автор не указал где нужно снимать галку - в приложении написанном на autoit или в другом приложении. Для первого варианта вам подсказал Александр, если нужно скриптом снять галку в другом приложении то так:
Код:
ControlCommand ( "title", "text", controlID, "UnCheck" , "" )
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
beliy спасибо! :smile:
Как получить controlID элемента? :scratch:
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
В результате получилось следующее:
( Если воспользоваться Control Viewer'ом или Au3Info )

Код:
$hControl = ControlGetHandle('WinTitle', '', '[CLASS:TCheckBox; INSTANCE:1]')
ControlCommand ( '', '', $hControl , 'UnCheck' , '' )

$ctrl_list = _WinAPI_EnumChildWindows(WinGetHandle('WinTitle'), 0)
( Если нужно получить список всех элементов ( и handles ) окна )


PS :IL_AutoIt_1:
Насколько я понял, там, где нужно использовать 'controlID' можно использовать 'ControlHandle'. Если ошибся, поправьте.
 
Верх