Функция GUISetAccelerators

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


GUISetAccelerators

Устанавливает быстрые клавиши для GUI-окна.

GUISetAccelerators ( accelerators [, winhandle ] )

Параметры

accelerators Двумерный массив содержащий таблицу быстрых клавиш (Смотрите примечания).
winhandle [необязательный] Дескриптор окна, возвращённый функцией GUICreate() (по умолчанию предыдущее используемое окно).

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

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

Примечания

Быстрые клавиши в отличии от HotKeySet работают только в активном окне приложения.

Массив, переданный этой функции, содержит горячие клавиши и присвоенные им идентификаторы элементов управления. Массив должен определён как Dim $array[n][2] - где n -количество установленных быстрых клавиш:

$array[0][0] = Первая горячая клавиша (в формате HotKeySet())
$array[0][1] = Первый идентификатор элемента управления, возвращённый функцией GUICtrlCreate...()
$array[1][0] = Вторая горячая клавиша
$array[1][1] = Второй идентификатор элемента управления
...
$array[n][0] = n-ая горячая клавиша
$array[n][1] = n-ый идентификатор элемента управления


Передача этой функции не массива приведёт к сбросу всех быстрых клавиш для данного дескриптора окна.

См. также

GUICreate, HotKeySet

Пример

; Простое пользовательское окно сообщения, используемое в режиме цикла
; это работает, если по умолчанию англоязычная раскладка, или если перед выполнением функции GUISetAccelerators установить англоязычную раскладку. Использование русских символов - работает только в OS с русской раскладкой по умолчанию.

#include <GUIConstantsEx.au3>

$hGui = GUICreate("Спец. MsgBox", 225, 80)

GUICtrlCreateLabel("Пожалуйста нажмите на кнопку!", 10, 10)
$iYesID = GUICtrlCreateButton("Да", 10, 50, 65, 25)
$iNoID = GUICtrlCreateButton("Нет", 80, 50, 65, 25)
$iExitID = GUICtrlCreateButton("Выход", 150, 50, 65, 25)

; Устанавливает связь идентификаторов с Ctrl+y и Ctrl+n
Local $aAccelKeys[2][2] = [["^y", $iYesID],["^n", $iNoID]]
GUISetAccelerators($aAccelKeys)

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

While 1
    Switch GUIGetMsg()
        Case $iYesID
            MsgBox(0, "Вы кликнули", "Да", 0, $hGui)
        Case $iNoID
            MsgBox(0, "Вы кликнули", "Нет", 0, $hGui)
        Case $iExitID
            MsgBox(0, "Вы кликнули", "Выход", 0, $hGui)
            ExitLoop
        Case $Gui_EVENT_CLOSE
            MsgBox(0, "Вы кликнули", "Закрыть", 0, $hGui)
            ExitLoop
    EndSwitch
WEnd
GUIDelete()