Функция GUICtrlSetState

 ↑  ←  Описание функции


GUICtrlSetState

Изменяет состояние элемента.

GUICtrlSetState ( controlID, state )

Параметры

controlID Идентификатор элемента возвращаемый функцией GUICtrlCreate....
state Смотрите Таблицу состояния ниже.

Возвращаемое значение

Успех:Возвращает 1.
Ошибка:Возвращает 0.

Примечания


    Таблица состояния
СостояниеКомментарий
0Без изменений
$GUI_UNCHECKEDСнимает галочки Radio, Checkbox и ListViewItem.
$GUI_CHECKEDУстанавливает галочки Radio, Checkbox или ListViewItem.
$GUI_INDETERMINATEУстанавливает Checkbox в третье состояние, делает серым.
$GUI_AVISTARTНачинает воспроизводить элемент Avi.
$GUI_AVISTOPОстанавливает воспроизведение элемента Avi.
$GUI_AVICLOSEОстанавливает воспроизведение элемента Avi и освобождает ресурс.
$GUI_DROPACCEPTEDЭлемент имеет свойство принимать брошенный на него объект (файл или другой элемент). Смотрите примечание.
$GUI_NODROPACCEPTEDЭлемент не будет принимать брошенный на него объект.
$GUI_SHOWПоказывает скрытый элемент. Элемент Tabitem (вкладка) отображается выбранной.
$GUI_HIDEСкрывает элемент (не отображается).
$GUI_ENABLEРазблокирует элемент (делает доступным).
$GUI_DISABLEОтключает элемент (делает серым, недоступным).
$GUI_FOCUSУстанавливает фокус на элементе (для нажатия Enter или ввода текста).
$GUI_NOFOCUSЭлемент Listview теряет фокус.
$GUI_DEFBUTTONУстанавливает элемент как "кнопка по умолчанию" в окне (вызываемая по Enter). Смотрите примечание к TreeviewItems.
$GUI_EXPANDРазворачивает дочерние пункты TreeViewItem.
$GUI_ONTOPЭлемент будет иметь атрибут "поверх" для окна (z-порядок).

Величина состояния может суммироваться, как например $GUI_DISABLE + $GUI_HIDE установит элементы в состояние отключен и скрыт.

Если элемент AVI нужно скрыть с помощью $GUI_HIDE, то нужно сначала закрыть с помощью $GUI_AVICLOSE.

Состояние элемента "contextmenu" не может быть изменено.
Состояние пунктов ListView может быть изменено, если ListView был создан с расширенным стилем $LVS_EX_CHECKBOXES. Состояния $GUI_FOCUS и $GUI_NOFOCUS могут применятся к пунктам ListView имеющего стиль: $LVS_SHOWSELALWAYS.
Состояние элемента "menu" или "menuitem" не может быть скрыто.

Важная информация для $GUI_EXPAND: это состояние только для TreeViewItems. Если вы хотите применить его к пункту в TreeView, то пункт по крайней мере должен иметь хотя бы один вложенный подпункт.
Если вы хотите, чтобы выбрать другой элемент в TreeView, то вы можете использовать $GUI_FOCUS, при этом родительский TreeView получает фокус и указанный пункт отмечается как выбранный.
Если вы хотите установить пункт TreeView как пункт по умолчанию, который означает жирный шрифт, то используйте $GUI_DEFBUTTON, а чтобы отключить используйте другое значение, например 0. Это состояние не возвращается функцией GUICtrlGetState.

Если установлен $GUI_DROPACCEPTED, учитывайте возможность операции drag & drop (перетащить и бросить). Элементы Edit и Input принимают пути к файлам, брошенным на них.
Для других элементов (в то числе Edit и Input) при событии $GUI_EVENT_DROPPED возвращённым функцией GUIGetMsg(), макрос @GUI_DragId возвращает идентификатор перетаскиваемого элемента или -1, если перетаскиваемый объект является файлом, @GUI_DragFile содержит путь перетаскиваемого файла, @GUI_DropId возвращает идентификатор элемента, на который брошен файл / объект.
При drag & drop в ListView выполняется только перемещение пункта, а @GUI_DragId возвращает идентификатор ListView.

См. также

GUICtrlCreate..., GUICtrlGetState

Пример

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

$hGUI = GUICreate("Состояние элементов в GUI", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)

$iLabel = GUICtrlCreateLabel("Перетащи и брось сюда файл", 10, 10, 400, 40, $WS_BORDER)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)

$iInput = GUICtrlCreateInput("", 10, 60, 400, 22)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)

GUICtrlCreateLabel("Отключенный текст", 10, 100)
GUICtrlSetState(-1, $GUI_DISABLE) ; элемент Label в отключенном состоянии

GUICtrlCreateButton("Кнопка с фокусом", 150, 140)
GUICtrlSetState(-1, $GUI_FOCUS) ; устанавливает фокус на кнопку

GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $GUI_EVENT_DROPPED ; Событие drag-and-drop
            If @GUI_DropId = $iLabel Then GUICtrlSetData($iLabel, @GUI_DragFile)
    EndSwitch
WEnd