メニュー項目の状態を変更します。
PSINT PSFUNCTION ps_modify_menu(
PSFILE psfile,
PSUSHORT mode,
PSUSHORT num,
PSPSTR PSPOINTER pAttn);
psfile | : | オープン処理で獲得した表示ファイル識別子を指定します。 | ||
mode | : | 状態変更の種類を指定します。値とその意味は以下のとおりです。 | ||
PS_MM_MASK | : | メニュー項目の選択を禁止します。 | ||
PS_MM_UNMASK | : | メニュー項目の選択禁止を解除します。 | ||
PS_MM_CHECK | : | チェックマークを設定します。 | ||
PS_MM_UNCHECK | : | チェックマークの設定を解除します。 | ||
num | : | 処理の対象とするメニュー項目の個数を指定します。 | ||
pAttn | : | 処理の対象とするメニュー項目のアテンション情報ヘのポインタをnumの個数分指定した領域のアドレスを指定します。アテンション情報には、NULLで終わる文字列を指定します。 |
画面への入力時にアテンション情報が"ATN1"と"ATN2"の2つのメニュー項目を選択禁止状態にします。
PSFILE psfile; SAMP samp; PSPSTR pAttn1[] = {"ATN1", "ATN2"}; PSPSTR PSPOINTER pAttn2; ~ pAttn2 = pAttn1; ps_set_formatsize(psfile, "SAMP", s_SAMP); ps_write(psfile, PS_WRITE_NOMAL, "SCREEN", &samp,0); ps_modify_menu(psfile, PS_MM_MASK, 2, pAttn2); ps_read(psfile, PS_READ_NOERASE, "SCREEN", &samp, 0); ~
正常終了時には0が返されます。エラー発生時には1または2が返されます。psfileの指定に誤りがある場合には2が、それ以外のエラーの場合には1が返されます。1が返された場合には通知コードの獲得で通知コードを獲得してエラー原因を識別できます。
処理中にオペレータがタスクリストからの終了を選択すると-1が返されます。その場合、利用者プログラムは必ず実行を終了してください。
MeFt V1.1ではメニュー項目の変更後の状態を画面切替え時に保持していませんでしたが、V1.2以降では保持するようになりました。したがって画面切替時にメニューが初期状態になっていることを前提した利用者プログラムはV1.2以降ではメニューの表示が異常になることがあります。
定義体にメニューがない場合、本関数を使用して、メニューの選択または解除を行うと、MEFD_RC_NOMN(FA)のエラーが通知されます。一方、定義体にメニューがある場合、メニューにない項目の選択または解除を行ってもエラー通知されません。(無視します)また、オープン直後で定義体を表示する前にメニュー操作を行うと、MEFD_RC_SEQ(CC)が通知されます。
PROCESSING M0DE句とUNIT CONTROL句に指定する。
PROCESSING MODE句 | : | PF | : | UNIT CONTROL句で指定したアテンションのメニュー項目の選択を禁止します。 |
PN | : | メニュー項目の選択禁止を解除します。 | ||
UNIT CONTROL句 | : | 選択を禁止するメニュー項目のアテンションを指定します。 |
画面への入力時にアテンション情報が"ATN1"のメニュー項目を選択禁止状態にします。
MOVE "SAMP" TO DSP-FORMAT. MOVE "@ALLF" TO DSP-GROUP. MOVE " " TO DSP-MODE. MOVE "PF" TO DSP-MODE. MOVE "ATN1" TO DSP-CONTROL. WRITE SAMP. READ ディスプレイファイル.
FILE STATUS句に通知コードが格納されます。
MeFt V1.1ではメニュー項目の変更後の状態を画面切替え時に保持していませんでしたが、V1.2以降では保持するようになりました。したがって画面切替え時にメニューが初期状態になっていることを前提した利用者プログラムはV1.2以降ではメニューの表示が異常になることがあります。
定義体にメニューがない場合、本関数を使用して、メニューの選択または解除を行うと、MEFD_RC_NOMN(FA)のエラーが通知されます。一方、定義体にメニューがある場合、メニューにない項目の選択または解除を行ってもエラー通知されません。(無視します)また、オープン直後で定義体を表示する前にメニュー操作を行うと、MEFD_RC_SEQ(CC)が通知されます。