sample\new\menubar.hsp » Plain Format
; メニューバーsample
; http://quasiquote.org/hspwiki/
; thanks ちょくと さん
; http://yokohama.cool.ne.jp/chokuto/urawaza/menu1.html
; http://yokohama.cool.ne.jp/chokuto/urawaza/menu2.html
#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