次の手順でリスト画面を表示し、キー入力を待機して処理を行います。
- 基本的な使い方と同じ手順でメニューアイテムとオプションを定義します。
-
AL_CreateList関数に、前項で定義したメニューアイテム、オプションとリスト表示領域の指定を渡してリストリソースを生成し、そのリソースを参照するためのリストハンドルを取得します。
サンプル
LIST_HANDLE hList; ... hList = AL_CreateList(ListMenuTable, (const pAM_Option)&ListOption, AM_PIX(18), 7);
サンプルでは、Y座標が18(ピクセル座標)の位置から7行分の領域をリスト表示領域に指定しています。 -
AL_AddListItem関数またはAL_AddListItemEx関数でリスト表示領域に表示するリストアイテムを登録します。
サンプルAL_ListItem item; char *buffCode; char *buffName; char textBuff[21+1]; ... item.listText = textBuff; item.paletteIndex = PX_BASE; item.showControl = AM_NO_CONTROL; item.userParam1 = (int)buffCode; //userParam1 for the code item.userParam2 = (int)buffName; //userParam2 for the name //Add list item if (!AL_AddListItem(hList, &item)){ //Error ... }
サンプルでは、AL_ListItem構造体のuserParam1とuserParam2にmalloc関数でアロケートしたメモリを指すポインタを設定しています。 -
AL_ShowList関数でリスト画面を表示します。
サンプル
AL_ShowList(hList, 0, 0);
-
AL_ExecList関数でキー入力を待機し、イベントを処理します。
AL_ExecList関数は次の機能を提供します。- フォーカスがあるリストアイテムにハイライトを表示する。
- [Q1]キー、[Q2]キーでフォーカスを上下に移動する。
- リスト表示領域の行数よりも多くのリストアイテムが登録されているときは、フォーカスの移動に合わせてリストを上下にスクロールさせ、フォーカスのあるリストアイテムが常にリスト表示領域に表示されるようにする。
- 何らかの入力があればイベントを返す。
- 入力が無い場合はIdle関数を呼びながら入力を待機する。
サンプルwhile(1){ event = AL_ExecList(hList); if (event == CLEAR_KEY){ //Exit break; }else{ ... } }
- リスト画面を閉じるときはAL_ReleaseList関数にリストハンドルを渡してリストリソースを解放します。
サンプルAL_ReleaseList(hList);
関連事項
最終更新日:2020/10/16