PalmOSには確認ダイアログ(ALERT)などの処理を行なう機能が提供されていて、
リソースのALERTを使うことにより簡単に使用することができます。
呼出し方も
FrmAlert関数に
リソースでて意義しているALERTのリソースIDを指定して呼ぶだけで、
戻り値としてALERTで押されたボタンの番号(0〜)が返ってきます。
ボタンはリソースのBUTTONSに必要なボタン分だけ、ボタンの表示文字列を並べて記述するだけです。
また、ALERTのタイプを表すアイコン表示は、下記の4種類を設定することができます。
アイコン | キーワード | 意味 |
---|---|---|
INFORMATION | 情報 | |
CONFIRMATION | 確認 | |
WARNING | 警告 | |
ERROR | エラー |
リソースのDEFAULTBUTTONは、ALERT表示中にハードボタン等が押されてアプリケーションの切り替えが起こったときに、
押された事にするボタンの番号(0〜)です。
下記のサンプルでは、1を指定しているので、Cancelボタンが押されたことになります。
サンプル画面
ヘッダファイル
#define MainForm 1000 #define SaveButton 1001 #define QuestionAlert 2000 |
リソースファイル
FORM ID MainForm AT (0 0 160 160) NOFRAME BEGIN TITLE "Alert" BUTTON "Save" ID SaveButton AT (4 108 25 12) FONT 0 END ALERT ID QuestionAlert CONFIRMATION DEFAULTBUTTON 1 BEGIN TITLE "Question" MESSAGE "Overwrite?" BUTTONS "OK" "Cancel" END |
イベントハンドラ
Boolean MainFormHandleEvent( EventPtr pEvent) /* I:イベント */ { Boolean handled = false; FormPtr pForm; switch (pEvent->eType) { case frmOpenEvent: /* フォームオープンイベント */ pForm = FrmGetActiveForm(); FrmDrawForm(pForm); handled = true; break; case ctlSelectEvent: /* コントロール選択イベント */ if (SaveButton == pEvent->data.ctlSelect.controlID) /* saveボタン押下? */ { if (0 == FrmAlert(QuestionAlert)) /* OKボタン押下? */ { /* 保存処理 */ } handled = true; } break; default: break; } return handled; } |
'06/3/4 新規作成
Copyright (c) 2006 kasa0 All rights reserved.