函数参考


GUISetAccelerators

为 GUI 窗口设置快捷键表.

GUISetAccelerators ( 快捷键 [, 窗口句柄] )

参数

快捷键 一个二维数组定义的快捷键表 (参考备注).
窗口句柄 [可选参数] 由 GUICreate 返回的窗口句柄(默认 (default) 为上一次使用的窗口).

返回值

成功: 返回 1.
失败: 返回 0.

注意/说明

传给这个函数的数组包含快捷键和关联的控件ID.这个数组必须定义为 Dim $array[n][2] - n 为快捷键的数目:

$array[0][0] = 第一个加速器的热键 (以 HotKeySet() 格式)
$array[0][1] = 第一个加速器的控件ID, 由 GUICtrlCreate...()返回
$array[1][0] = 第二个加速器的热键
$array[1][1] = 第二个加速器的控件ID
...
$array[n][0] = 第 n 个加速器的热键
$array[n][1] = 第 n 个加速器的控件ID

传递非数组数据将会取消指定窗口句柄设置的快捷键.

相关

GUICreate, HotKeySet

示例/演示


; A simple custom messagebox that uses the MessageLoop mode

#include <GUIConstantsEx.au3>

GUICreate("Custom Msgbox", 210, 80)

GUICtrlCreateLabel("Please click a button!", 10, 10)
Local $YesID = GUICtrlCreateButton("Yes", 10, 50, 50, 20)
Local $NoID = GUICtrlCreateButton("No", 80, 50, 50, 20)
Local $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20)

; Set accelerators for Ctrl+y and Ctrl+n
Local $AccelKeys[2][2] = [["^y", $YesID],["^n", $NoID]]
GUISetAccelerators($AccelKeys)

GUISetState() ; display the GUI

Do
    Local $msg = GUIGetMsg()

    Select
        Case $msg = $YesID
            MsgBox(0, "You clicked on", "Yes")
        Case $msg = $NoID
            MsgBox(0, "You clicked on", "No")
        Case $msg = $ExitID
            MsgBox(0, "You clicked on", "Exit")
        Case $msg = $GUI_EVENT_CLOSE
            MsgBox(0, "You clicked on", "Close")
    EndSelect
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID