セレクタトリガは、タップすることにより何らかの選択画面やリストを表示し、 選択された結果を表示するコントロールですが、 選択された結果の表示は自前でやる必要があります。
セレクタトリガに文字列を設定するには、
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.