GUISetAccelerators
设置快捷方式.
GUISetAccelerators ( accelerators [, winhandle] )
参数
accelerators
|
存储快捷方式信息的二维数组 (见备注).
|
winhandle
|
[可选] 使用 GUICreate() 函数返回的窗口句柄. (默认为先前使用的窗口).
|
返回值
备注
快捷键类似热键, 但又两个重要区别:
- 1. 它们只在函数指定的 GUI 激活时被才激活, 这意味着不同于热键, 快捷键不会干扰其他正在运行的程序.
- 2. 它们不能直接接激活一个函数 - 它们使用 GUIGetMsg() 或 GUICtrlSetOnEvent() 启用它们关联的控件来激活函数. 如果 GUI 中没有适当的控件可用可以使用 GUICtrlCreateDummy 创建一个虚拟控件.
传递给函数的数组包含快捷方式热键和作用对象控件 ID. 必须指定为全局/局部 $aArray[n][2] 数组, n 为快捷键的数目:
$aArray[0][0] = 第一个快捷方式的热键 (格式: HotKeySet())
$aArray[0][1] = 第一个快捷方式作用对象的控件 ID, 控件 ID 由 GUICtrlCreate... 创建控件类函数返回
$aArray[1][0] = 第二个快捷方式的热键
$aArray[1][1] = 第二个快捷方式作用对象控件 ID
...
$aArray[n][0] = 第 n 个快捷方式的热键
$aArray[n][1] = 第 n 个快捷方式作用对象控件 ID
传递非数组数据, 将取消给定句柄窗口设置的所有加速键.
相关
GUICreate, HotKeySet
函数示例
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
GUICreate("Custom MsgBox", 225, 80)
GUICtrlCreateLabel("Please select a button.", 10, 10)
Local $idYes = GUICtrlCreateButton("Yes", 10, 50, 65, 25)
Local $idNo = GUICtrlCreateButton("No", 80, 50, 65, 25)
Local $idExit = GUICtrlCreateButton("Exit", 150, 50, 65, 25)
; Set GUIAccelerators for the button controlIDs, these being Ctrl + y and Ctrl + n
Local $aAccelKeys[2][2] = [["^y", $idYes], ["^n", $idNo]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW) ; Display the GUI.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
MsgBox($MB_SYSTEMMODAL, "You selected", "Close")
ExitLoop
Case $idYes
MsgBox($MB_SYSTEMMODAL, "You selected", "Yes") ; Displays if the button was selected or the hotkey combination Ctrl + y was pressed.
Case $idNo
MsgBox($MB_SYSTEMMODAL, "You selected", "No") ; Displays if the button was selected or the hotkey combination Ctrl + n was pressed.
Case $idExit
MsgBox($MB_SYSTEMMODAL, "You selected", "Exit")
ExitLoop
EndSwitch
WEnd
GUIDelete() ; Delete the GUI.
EndFunc ;==>Example
----------------------------------------
|