INSERTMENUQQ

QuickWin 関数:QuickWin メニューにメニュー項目を挿入し,そのコールバック・ルーチンを登録します。

モジュールUSE DFLIB

形式

result = INSERTMENUQQ (menuID, itemID, flag, text, routine)

menuID
(入力) INTEGER(4)。項目を挿入するメニューのメニュー識別子。最も左のメニューが 1 です。

itemID
(入力) INTEGER(4)。項目が挿入されるメニューの位置の識別子。最上位メニュー項目が 0 です。

flags
(入力) INTEGER(4)。メニュー状態を示す定数。排他的 OR でフラグを結合することができます (結果を参照)。以下の定数が利用可能です。

text
(入力) CHARACTER*(*)。メニュー項目名。ヌルで終わる C 文字列でなければなりません。たとえば,'WORDS OF TEXT'C です。

routine
(入力) EXTERNAL。メニュー項目が選択された時に呼び出されるコールバック・サブルーチン。すべてのルーチンは,どのメニュー項目が選択されたかを示す単一の LOGICAL パラメタをとります。以下の既定ルーチンをメニューに割り当てることができます。

結果

結果の型は LOGICAL です。成功すると .TRUE. が返され,そうでなければ .FALSE. が返されます。

メニューとメニュー項目は,左から右,上から下の順で定義されなければなりません。たとえば,メニュー項目 5 と 6 が定義されていない時にメニュー項目 7 を挿入しようとすると,INSERTMENUQQ は失敗します。最上位メニュー項目に対して,コールバックルーチンはその下に副項目があれば無視されます。

flag で利用できる定数は,排他的 OR で結合することができます。たとえば,MENUCHECKED .OR. $MENUENABLED です。幾つかの組み合わせ (たとえば,$MENUENABLED$MENUDISABLED) は意味を持ちませんし,未定義の動作を引き起こします。

テキスト文字列にショートカット・キーを作成することができます。INSERTMENUQQ に下線を引きたい文字の前にアンド記号 (&) を置くことで text として渡します。たとえば,"r" に下線を引いた "Print" メニュー項目を追加する場合,text"P&rint" を代入します。ショートカット・キーにより,マウスで項目を選択する代わりに,プログラムのユーザーはキーの組み合わせ ALT+QUICK-ACCESS-KEY (たとえば,ALT+R) でそのメニュー項目を活動状態にすることができます。

QuickWin メニューのカスタマイズに関する詳細は,「QuickWin の使用」を参照してください。

互換性

QUICKWIN GRAPHICS LIB

関連情報

APPENDMENUQQDELETEMENUQQMODIFYMENUFLAGSQQMODIFYMENUROUTINEQQMODIFYMENUSTRINGQQQuickWin の使用

	! QuickWin アプリケーションでビルドします。
	USE DFLIB
	LOGICAL(4) status
	! メニュー 5 (Window) に新しい項目を挿入します。
	status= INSERTMENUQQ(5, 5, $MENUCHECKED, 'New Item'C, &
	                     WINSTATUS)
	! 位置 2 に新しいメニューを挿入します。
	status= INSERTMENUQQ(2, 0, $MENUENABLED, 'New Menu'C, &
	                     WINSAVE)
	END