以下のようにメニュー文字列のアルファベットの前に&を付けると
Alt+そのアルファベットでメニューを選択できるようにできます。
メニューに&は表示されません。
#include "user32.as"
#define ctype LOWORD(%1) (%1 & $FFFF)
; 項目ID
#enum IDM_XXX = 1
#enum IDM_YYY
#enum IDM_ZZZ
#enum IDM_BBB
#enum IDM_CCC
#enum IDM_KOUMOKU1
#enum IDM_KOUMOKU2
; WM_COMMANDメッセージ
oncmd gosub *command, $111
CreatePopupMenu
hMenu.1 = stat
AppendMenu hMenu.1, 0, IDM_KOUMOKU1, "項目1"
AppendMenu hMenu.1, 0, IDM_KOUMOKU2, "項目2"
AppendMenu hMenu.1, $800, 0, "" // 第2パラ$800は区切り線
AppendMenu hMenu.1, 0, IDM_EXIT, "終了"
; <メインのメニューバー>
CreateMenu
hMenu.0 = stat
AppendMenu hMenu.0, $10, 0, "&A"
AppendMenu hMenu.0, $10, 1, "&B"
AppendMenu hMenu.0, $10, 2, "&C"
; ウィンドウにメニューを付ける
SetMenu hwnd, hMenu.0
DrawMenuBar hwnd
stop
// WM_COMMANDメッセージ
*command
; メニューからのウィンドウメッセージ
if lparam = 0 {
; wparamの下位ワードにメニュー項目ID
wID = LOWORD(wparam)
if(wID==0):dialog "A"
if(wID==1):dialog "B"
if(wID==2):dialog "C"
return
}
return
また、Altを押すと&の後ろのアルファベットに下線が付きます。
これではだめでしょうか?
shiftやCtrlなどをショートカットにしたい場合は言ってください。