function AddKeyboardShortcut(Hwnd as HWND , Syskey as integer , Shortcut as integer , IDevent as integer) as any ptr
Позволяет задавать горячие клавиши для заданного окна.
Этой же функцией можно изменять горячие клавиши: для этого просто при этом же событии указать другие клавиши.
Так же ей можно отключать нужную горячую клавишу: для этого просто при этом же событии указать вместо клавиш NULL.Если функция завершается успешно, возвращаемое значение представляет собой указатель на созданную таблицу клавиш-ускорителей, в противном случае, это NULL. В Linux возвращаемое значение: GtkAccelGroup ptr
Hwnd - Хендл окна, для которого задаются горячие клавиши
Syskey - Системные клавиши могут быть: FSHIFT , FALT , FCONTROL. Так же можно FVIRTKEY, если нужно использовать клавиши без сочетаний (shift,ctrl,alt)
Shortcut - Любая клавиша(ниже список). В linux не все из предложенных клавиш могут использоваться. Например не получится использовать клавиши со стрелками, TAB и некоторые другие (см. заголовок keys.bi). Это связано с ограничениями , заложенными в GTK для accel_group. Однако вы можете недоступные клавиши попытаться отловить с помощью сообщения eventkey.
IDevent - номер события. Рекомендуется использование номеров от 2 до 65535. Использование 0 запрещено. Использование 1 может вызвать наложение некоторых событий.
Windows , Linux
#Include "window9.bi"
Dim As Integer event
Var hwnd=OpenWindow("",10,10,200,200):CenterWindow(hwnd)
AddKeyboardShortcut(hwnd,FCONTROL,VK_Q,1001) 'CTRL+Q
AddKeyboardShortcut(hwnd,FCONTROL,VK_W,1002) 'CTRL+W
Do
event=WaitEvent
If event=EventMenu Then
Select case EventNumber
Case 1001
MessBox("","1 меню")
Case 1002
MessBox("","2 меню")
End Select
EndIf
If event=EventClose Then End
Loop
Константа WinApi |
Hex значение |
Клавиатурный или |
VK_LBUTTON |
01 |
Left mouse button |
VK_RBUTTON |
02 |
Right mouse button |
VK_CANCEL |
03 |
Control-break processing |
VK_MBUTTON |
04 |
Middle mouse button |
- |
05-07 |
Undefined |
VK_BACK |
08 |
BACKSPACE key |
VK_TAB |
09 |
TAB key |
- |
0A-0B |
Undefined |
VK_CLEAR |
0C |
CLEAR key |
VK_RETURN |
0D |
ENTER key |
- |
0E-0F |
Undefined |
VK_SHIFT |
10 |
SHIFT key |
VK_CONTROL |
11 |
CTRL key |
VK_MENU |
12 |
ALT key |
VK_PAUSE |
13 |
PAUSE key |
VK_CAPITAL |
14 |
CAPS LOCK key |
- |
15-19 |
Зарезервировано для систем Kanji |
- |
1A |
Undefined |
VK_ESCAPE |
1B |
ESC key |
- |
1C-1F |
Зарезервировано для систем Kanji |
VK_SPACE |
20 |
SPACEBAR |
VK_PRIOR |
21 |
PAGE UP key |
VK_NEXT |
22 |
PAGE DOWN key |
VK_END |
23 |
END key |
VK_HOME |
24 |
HOME key |
VK_LEFT |
25 |
LEFT ARROW key |
VK_UP |
26 |
UP ARROW key |
VK_RIGHT |
27 |
RIGHT ARROW key |
VK_DOWN |
28 |
DOW NARROW key |
VK_SELECT |
29 |
SELECT key |
- |
2A |
Original equipment |
VK_EXECUTE |
2B |
EXECUTE key |
VK_SNAPSHOT |
2C |
PRINT SCREEN key |
VK_INSERT |
2D |
INS key |
VK_DELETE |
2E |
DEL key |
VK_HELP |
2F |
HELP key |
VK_0 |
30 |
0 key |
VK_1 |
31 |
1 key |
VK_2 |
32 |
2 key |
VK_3 |
33 |
3 key |
VK_4 |
34 |
4 key |
VK_5 |
35 |
5 key |
VK_6 |
36 |
6 key |
VK_7 |
37 |
7 key |
VK_8 |
38 |
8 key |
VK_9 |
39 |
9 key |
- |
3A-40 |
Undefined |
VK_A |
41 |
A key |
VK_B |
42 |
B key |
VK_C |
43 |
C key |
VK_D |
44 |
D key |
VK_E |
45 |
E key |
VK_F |
46 |
F key |
VK_G |
47 |
G key |
VK_H |
48 |
H key |
VK_I |
49 |
I key |
VK_J |
4A |
J key |
VK_K |
4B |
K key |
VK_L |
4C |
L key |
VK_M |
4D |
M key |
VK_N |
4E |
N key |
VK_O |
4F |
O key |
VK_P |
50 |
P key |
VK_Q |
51 |
Q key |
VK_R |
52 |
R key |
VK_S |
53 |
S key |
VK_T |
54 |
T key |
VK_U |
55 |
U key |
VK_V |
56 |
V key |
VK_W |
57 |
W key |
VK_X |
58 |
X key |
VK_Y |
59 |
Y key |
VK_Z |
5A |
Z key |
VK_LWIN |
5B |
Left Windows key |
VK_RWIN |
5C |
Right Windows key |
VK_APPS |
5D |
Applications key |
- |
5E-5F |
Undefined |
VK_NUMPAD0 |
60 |
Numeric keypad 0 key |
VK_NUMPAD1 |
61 |
Numeric keypad 1 key |
VK_NUMPAD2 |
62 |
Numeric keypad 2 key |
VK_NUMPAD3 |
63 |
Numeric keypad 3 key |
VK_NUMPAD4 |
64 |
Numeric keypad 4 key |
VK_NUMPAD5 |
65 |
Numeric keypad 5 key |
VK_NUMPAD6 |
66 |
Numeric keypad 6 key |
VK_NUMPAD7 |
67 |
Numeric keypad 7 key |
VK_NUMPAD8 |
68 |
Numeric keypad 8 key |
VK_NUMPAD9 |
69 |
Numeric keypad 9 key |
VK_MULTIPLY |
6A |
Multiply key |
VK_ADD |
6B |
Add key |
VK_SEPARATOR |
6C |
Separator key |
VK_SUBTRACT |
6D |
Subtract key |
VK_DECIMAL |
6E |
Decimal key |
VK_DIVIDE |
6F |
Divide key |
VK_F1 |
70 |
F1 key |
VK_F2 |
71 |
F2 key |
VK_F3 |
72 |
F3 key |
VK_F4 |
73 |
F4 key |
VK_F5 |
74 |
F5 key |
VK_F6 |
75 |
F6 key |
VK_F7 |
76 |
F7 key |
VK_F8 |
77 |
F8 key |
VK_F9 |
78 |
F9 key |
VK_F10 |
79 |
F10 key |
VK_F11 |
7A |
F11 key |
VK_F12 |
7B |
F12 key |
VK_F13 |
7C |
F13 key |
VK_F14 |
7D |
F14 key |
VK_F15 |
7E |
F15 key |
VK_F16 |
7F |
F16 key |
VK_F17 |
80H |
F17 key |
VK_F18 |
81H |
F18 key |
VK_F19 |
82H |
F19 key |
VK_F20 |
83H |
F20 key |
VK_F21 |
84H |
F21 key |
VK_F22 |
85H |
F22 key |
VK_F23 |
86H |
F23 key |
VK_F24 |
87H |
F24 key |
- |
88-8F |
Unassigned |
VK_NUMLOCK |
90 |
NUMLOCK key |
VK_SCROLL |
91 |
SCROLL LOCK key |
- |
92-B9 |
Unassigned |
- |
BA-C0 |
OEM specific |
- |
C1-DA |
Unassigned |
- |
DB-E4 |
OEM specific |
- |
E5 |
Unassigned |
- |
E6 |
OEM specific |
- |
E7-E8 |
Unassigned |
- |
E9-F5 |
OEM specific |
VK_ATTN |
F6 |
Attn key |
VK_CRSEL |
F7 |
CrSel key |
VK_EXSEL |
F8 |
ExSel key |
VK_EREOF |
F9 |
Erase EOF key |
VK_PLAY |
FA |
Play key |
VK_ZOOM |
FB |
Zoom key |
VK_NONAME |
FC |
Зарезервировано на будущее |
VK_PA1 |
FD |
PA1 key |
VK_OEM_CLEAR |
FE |
Clear key |
Created with the Personal Edition of HelpNDoc: Full featured multi-format Help generator