目次に戻る
一覧ページに戻る
CPListBox::AttachSelectEvent
2002/09/30 update.
Ver 1.10
リストボックスが選択されたときのコールバック関数を設定します。

書式

  typedef void (* LP_LISTBOXPROC)(CPListBox *);
  CP_BOOL AttachSelectEvent(LP_LISTBOXPROC lpProc);

パラメータ


lpProc
「void xxxx(CPListBox *)」型のstatic関数を指定します。
ここで指定したコールバック関数に対し、リストボックスでアクションが起こった場合のイベント処理を行います。

解説


リストボックスでアクションが起こった場合のコールバック関数を設定します。
リストボックスで選択操作が行われたときに、ここで指定したコールバック関数を呼び出します。
なお、コールバック関数は必ずstaticの静的関数である必要があります。
コールバックを解除する場合は「DetachSelectEvent( )」を呼び出してください。





ウィンドウ(ダイアログ)を生成して、その中にリストボックスを配置します。

CPWindow win;
CPListBox LBox;

//リストボックスのイベントを受け取る
static void OnSelectListBox(CPListBox *lpLBox)
{
    //再描画を促す
    lpLBox->Repaint();
}

void main()
{
    //ダイアログを生成する
    win.Clear();
    win.CreateNewDialog("TestDialog",120,120,300,200);

    //リストボックスの位置・サイズを指定
    LBox.SetBounds(20,30,120,80);

    //リストボックスの文字列を指定
    LBox.AddText("Item 1");
    LBox.AddText("Item 2");
    LBox.AddText("Item 3");

    //リストボックスのイベントを設定
    LBox.AttachSelectEvent(OnSelectListBox);

    //リストボックスをCPWindowに結びつける
    win.Add(&LBox);

    //ダイアログの表示・イベントループの開始
    win.DoModal();
}

この例では、リストボックスにコールバック関数「OnSelectListBox」が指定されています。
これにより、リストボックスLBoxの選択行が変化したりすると、staticで定義された関数「OnSelectListBox」が呼ばれることになります。
この中で「lpLBox->Repaint()」を呼び出してリストボックスの再描画を行っています。


ビルド時に必要なファイル


ライブラリ :CPartsLib.lib (Macintoshの場合は、CPartsCW.a)
ヘッダ :CPListBox.h


関連リンク


CPListBoxクラス
CPListBox::DetachSelectEvent