APPENDMENUQQ

QuickWin 関数:メニューの最後にメニュー項目を追加し,コールバック・サブルーチンを登録します。

モジュールUSE DFLIB

形式

result = APPENDMENUQQ (menuID, flags, text, routine)

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

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

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

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

結果

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

メニュー項目番号を指定する必要はありません。これは,APPENDMENUQQ が常にメニュー一覧の最後に新しい項目を追加するためです。メニューに項目がまだない場合,追加した項目は最上位のメニュー項目 (メニューバーに表示) として取り扱われ,text はメニューのタイトルになります。メニューに他のメニュー項目がない場合,APPENDMENUQQ は最上位のメニュー項目のコールバック・ルーチンを無視します。この場合,routineNUL を設定することができます。

メニュー一覧の最後に追加するのではなく,メニューに項目を挿入したい場合,INSERTMENUQQ を使います。

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

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

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

互換性

QUICKWIN GRAPHICS LIB

関連情報

DELETEMENUQQINSERTMENUQQMODIFYMENUFLAGSQQMODIFYMENUROUTINEQQMODIFYMENUSTRINGQQQuickWin の使用

	! QuickWin アプリケーションでビルドします。
	USE DFLIB
	LOGICAL(4) result
	CHARACTER(25) str
	...
	! 第 1 メニュー (FILE) の最後に項目を追加します。
	str    = '&Add to File Menu'C	! 'A' はクイックアクセス・キー
	result = APPENDMENUQQ(1, $MENUENABLED, str, WINSTATUS)
	str    = 'Menu Item &2b'C	! '2'  はクイックアクセス・キー
	result = APPENDMENUQQ(1, $MENUENABLED, str, WINCASCADE)
	! 第 2 メニュー (EDIT) の最後に項目を追加します。
	str    = 'Add to Second &Menu'C	! 'M' はクイックアクセス・キー
	result = APPENDMENUQQ(2, $MENUENABLED, str, WINTILE)