Что нового

[Элементы GUI] Как назначить горячие клавиши на кнопки GUI?

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Доброго времени суток.
Есть окно гуи, в нем кнопки. К кнопкам нужно прикрутить горячие клавиши.
Например, с кнопкой "<<Назад" сопоставить гор. клавишу "стрелка влево" ('{LEFT}').
Код:
#Include <WindowsConstants.au3>
#include <ButtonConstants.au3>

$title="Test"
$gui_timetable=GUICreate($title,210,280,-1,-1,$WS_SYSMENU)

$SelectedDate_ctrl=GUICtrlCreateDate("",-100,-100,160,20)
$SelectedDate=GUICtrlRead($SelectedDate_ctrl)
$dDate=GUICtrlCreateLabel('',10,9,190,20)
GUICtrlSetFont(-1,9,800)

$label=GUICtrlCreateLabel('',20,20,200,20)
GUICtrlSetFont(-1,10,800)

$back=GUICtrlCreateButton('<<Назад',10,180,90,30)
$forward=GUICtrlCreateButton('Вперед>>',105,180,90,30)
$close=GUICtrlCreateButton('Закрыть',10,215,185,30,$BS_DEFPUSHBUTTON)

GuiSetState()

$CheckDate=0

Do	
	$msg2=GUIGetMsg()
	If $msg2=$back Then GUICtrlSetData($label,'back')
	If $msg2=$forward Then GUICtrlSetData($label,'forward')
Until $msg2=-3 or $msg2=$close
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
kasper_sky
В справке посмотрите GUISetAccelerators().
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Пример:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>

$title = "Test"
$gui_timetable = GUICreate($title, 210, 280, -1, -1, $WS_SYSMENU)

$SelectedDate_ctrl = GUICtrlCreateDate("", -100, -100, 160, 20)
$SelectedDate = GUICtrlRead($SelectedDate_ctrl)
$dDate = GUICtrlCreateLabel('', 10, 9, 190, 20)
GUICtrlSetFont(-1, 9, 800)

$label = GUICtrlCreateLabel('', 20, 20, 200, 20)
GUICtrlSetFont(-1, 10, 800)

$back = GUICtrlCreateButton('<<Назад', 10, 180, 90, 30)
$forward = GUICtrlCreateButton('Вперед>>', 105, 180, 90, 30)
$close = GUICtrlCreateButton('Закрыть', 10, 215, 185, 30, $BS_DEFPUSHBUTTON)

Dim $aAccelKeys[2][2] = [["{LEFT}", $back], ["{RIGHT}", $forward]]
GUISetAccelerators($aAccelKeys)
GUISetState()

While 1
	$nMsg = GUIGetMsg()

	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $close
			Exit
		Case $back
			GUICtrlSetData($label, 'back')
		Case $forward
			GUICtrlSetData($label, 'forward')
	EndSwitch
WEnd
 
Верх