RosettaCodeData/Task/Keyboard-macros/BBC-BASIC/keyboard-macros-2.basic

34 lines
795 B
Plaintext

FVIRTKEY = 1
VK_F1 = &70
VK_F2 = &71
nsc% = 2
DIM accel{(nsc%-1) fVirt&, pad&, key{l&,h&}, cmd{l&,h&}}
accel{(0)}.fVirt& = FVIRTKEY : accel{(1)}.fVirt& = FVIRTKEY
accel{(0)}.key.l& = VK_F1 : accel{(0)}.cmd.l& = &81
accel{(1)}.key.l& = VK_F2 : accel{(1)}.cmd.l& = &82
SYS "CreateAcceleratorTable", accel{(0)}, nsc% TO haccel%
@haccel% = haccel%
@hwacc% = @hwnd%
ON SYS PROCsys(@wparam%) : RETURN
REPEAT
WAIT 1
UNTIL FALSE
END
DEF PROCsys(W%)
CASE W% AND &FFFF OF
WHEN &81: PROCmethod1
WHEN &82: PROCmethod2
ENDCASE
ENDPROC
DEF PROCmethod1
PRINT "You pressed F1"
ENDPROC
DEF PROCmethod2
PRINT "You pressed F2"
ENDPROC