セレクタトリガは、タップすることにより何らかの選択画面やリストを表示し、 選択された結果を表示するコントロールですが、 選択された結果の表示は自前でやる必要があります。
セレクタトリガに文字列を設定するには、
CtlGetLabel関数
によりラベル文字列のポインタを取得し、
文字列をコピーします。
これでセレクタトリガに文字列を設定することができるのですが、
セレクタトリガを文字列の幅に合わせるために、
CtlSetLabel関数
を呼び出す必要があります。
セレクタトリガの横幅を可変にする必要が無いならば、 FrmCopyLabel関数 を使用する方が簡単です。
サンプル画面
ヘッダファイル
#define MainForm 1000 #define SelectorTrigger 1001 |
リソースファイル
FORM ID MainForm AT (0 0 160 160) NOFRAME BEGIN TITLE "SelectorTrigger" SELECTORTRIGGER "99/99" ID SelectorTrigger AT (2 17 152 AUTO) FONT 0 END |
イベントハンドラー
Boolean MainFormHandleEvent( EventPtr pEvent) /* I:イベント */ { Boolean handled = false; FormPtr pForm; ControlPtr pCtrl; CharPtr pLabel; switch (pEvent->eType) { case frmOpenEvent: /* フォームオープンイベント */ pForm = FrmGetActiveForm(); pCtrl = FrmGetObjectPtr(pForm, FrmGetObjectIndex(pForm, SelectorTrigger)); pLabel = (CharPtr)CtlGetLabel(pCtrl); StrCopy(pLabel, "2/17"); CtlSetLabel(pCtrl, pLabel); FrmDrawForm(pForm); handled = true; break; default: break; } return handled; } |
'06/2/17 新規作成
Copyright (c) 2006 kasa0 All rights reserved.