これらの命令はmod_menu.as内にて定義されています。
・
newmenu ID,p2
ID=メニューのID(名前)
p2=配置する場所(0=ウィンドウ内,1=メニューリスト)
この命令は、メニューカテゴリ(?)を指定するものです。
・
addmenu ID, "string", p2
ID=newmenu命令で指定したID
"string"=メニュー(項目)文字列
p2=操作ID
p2の操作IDは、あらかじめ#enum命令で定義しておかなければいけません。
サンプルのっけときます
#include "mod_menu.as"
; メニューアイテムIDを定義
#enum global NULL=0 ; NULL
#enum CMD_OPEN ; [開く]アイテムのID
#enum CMD_SAVE ; [保存]アイテムのID
#enum CMD_QUIT ; [終了]アイテムのID
#enum CMD_MESS ; [表示]アイテムのID
; メッセージ割り込み
oncmd gosub *OnCommand, WM_COMMAND
onexit gosub *OnExitMess
; ポップアップメニューの作成
; [ファイル]メニュー
newmenu hfilemenu,1 ; サブメニュー作成
addmenu hfilemenu, "開く(&O)", CMD_OPEN ; 開く
addmenu hfilemenu, "保存(&S)", CMD_SAVE ; 保存
addmenu hfilemenu, "", NULL, 0x800 ; セパレータ
addmenu hfilemenu, "終了(&Q)", CMD_QUIT ; 終了
; [ヘルプ]メニュー
newmenu hhelpmenu,1 ; サブメニュー作成
addmenu hhelpmenu, "表示(&M)", CMD_MESS ; 表示
; メニューバーの作成
newmenu hmenu,0 ; メニュー作成
addmenu hmenu, "ファイル(&F)", hfilemenu, 0x10 ; ファイル
addmenu hmenu, "ヘルプ(&H)", hhelpmenu, 0x10 ; ヘルプ
addmenu hmenu, "終了(&Q)", CMD_QUIT ; 終了
applymenu hmenu ; メニュー割り当て
stop
; メッセージの処理
*OnCommand
switch (wparam & 0xFFFF)
case CMD_OPEN ; 開く
dialog "*", 16
if stat = 1 {
dialog refstr + "を開きました", 0, "テスト"
}
swbreak
case CMD_SAVE ; 保存
dialog "*", 17
if stat = 1 {
dialog refstr + "を保存しました", 0, "テスト"
}
swbreak
case CMD_QUIT ; 終了
; ( Send だと終了できないので注意 )
PostMessage hwnd, WM_CLOSE, 0, 0
swbreak
case CMD_MESS ; 表示
dialog "メニュー作成のテストです", 0, "メッセージ表示"
swbreak
default
swbreak
swend
return
*OnExitMess
dialog "終了しますか?", 2, "確認"
if stat = 6 {
end
}
return
質問あったらきいてね