addmenu

メニュー項目を追加する

addmenu p1, p2, p3, p4

p1 : メニューハンドル
p2 : メニュー文字列
p3 : メニューアイテムID値
p4 : メニュー項目属性

(プラグイン / モジュール : mod_menu)

解説

newmenuで作成したメニューに項目を追加します。
メニューの作成に失敗するとstatに0が返ります。

p1には項目を追加するメニューのハンドルを指定します。

p2にはメニューアイテムに表示する文字列を指定します。半角の&に続けて半角アルファベットを記述すると、ショートカットキーとして割り当てることができます。

p3にはメニューアイテムのIDを指定します。p4に0x0010を指定した場合は、ドロップダウンメニューまたはサブメニューのハンドルを指定します。

p4にはメニューアイテムのオプションを指定します。オプションは加算あるいはOR演算で組み合わせて使用できます。
addmenu命令の第4パラメータ(一部)
0x0000デフォルト表示
0x0003灰色表示・選択不可
0x0008アイテムにチェックマークを付ける
0x0010ドロップダウンメニューまたはサブメニューを開くアイテムを追加
0x0800セパレータ(区切り線)を表示

サンプル

#include "mod_menu.as"
#define CMD_A		1
#define CMD_B		2
#define CMD_D		3
#define CMD_QUIT	4

	oncmd gosub *OnCommand, WM_COMMAND	//  メッセージ割り込み
	// メニューC直下のサブメニュー作成
	newmenu hsubmenu2, 1
	addmenu hsubmenu2, "メニューD(&D)", CMD_D
	// サブメニュー作成
	newmenu hsubmenu, 1
	addmenu hsubmenu, "メニューA(&A)", CMD_A, 0x0003    	// 灰色表示・選択不可
	addmenu hsubmenu, "メニューB(&B)", CMD_B, 0x0008    	// チェックマーク付き
	addmenu hsubmenu, "メニューC(&C)", hsubmenu2, 0x0010	// サブメニューあり
	addmenu hsubmenu, "", 0, 0x0800                     	// セパレータ
	addmenu hsubmenu, "終了(&Q)", CMD_QUIT
	// トップメニュー作成
	newmenu hmenu, 0
	addmenu hmenu, "メニュー(&M)", hsubmenu, 0x10

	applymenu hmenu
	stop

//メッセージの処理
*OnCommand
	cmd = wparam & 0xFFFF
	switch cmd
		case CMD_A	// メニューAは使用不可
		case CMD_QUIT
			dialog "終了が選択されました"
			end
		case CMD_B
			dialog "メニューBが選択されました"
			swbreak
		case CMD_D
			dialog "メニューDが選択されました"
			swbreak
	swend
	return

関連項目

newmenu新しいメニューハンドルを取得する(mod_menu)
applymenuメニューをウィンドウに割り当てる(mod_menu)

サンプル逆引き (1)

menusample.hsp

情報

プラグイン / モジュールmod_menu
バージョン3.3
作成日2009/08/01
著作者onitama(thanks ちょくと さん)
URLhttp://yokohama.cool.ne.jp/chokuto/urawaza/api/AppendMenu.html
備考mod_menu.asをインクルードすること。
タイプユーザー拡張命令
グループメニューバー作成
対応環境
  • Windows 版 HSP
  • HSPLet
hs ファイルhsphelp\mod_menu.hs