目次に戻る
一覧ページに戻る
CPComboBox::Repaint
2001/12/19 update.
コンボボックスの再描画を促します。

書式

  void Repaint();

解説


コンボボックスの再描画を促します。
イベントなどで動的にコンボボックスの内容が変化した(表示文字列が切り替わった・非選択状態になった、など)、という場合には「Repaint」を呼び出して再描画を促す必要があります。





ウィンドウ(ダイアログ)を生成して、その中にチェックボックスを配置します。チェックボックスのチェックをはずすと、コンボボックスを選択できない状態にしています。

CPWindow win;
CPCheckBox chkbox;
CPComboBox cbox;

//チェックボックスのイベントを受け取る
static void OnCheck(CPCheckBox *lpChk)
{

    //チェックボックスがチェックされていない場合
    if(lpChk->IsSelected()==CP_FALSE){
        //非選択状態にする
        cbox.SetEnable(CP_FALSE);
    } else {
        //選択可能状態にする
        cbox.SetEnable(CP_TRUE);
    }
    //再描画を促す
    cbox.Repaint();

}

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

    //チェックボックスの位置・サイズを指定
    chkbox.SetBounds(10,10,120,14);

    //チェックボックスの文字列を指定
    chkbox.SetText("CheckBox");

    //チェックボックスのチェック
    chkbox.SetSelected(CP_TRUE);

    //チェックボックスのコールバック関数設定
    chkbox.AttachSelectEvent(OnCheck);

    //チェックボックスをCPWindowに結びつける
    win.Add(&chkbox);

    //コンボボックスの位置・サイズを指定
    cbox.SetBounds(20,30,120,20);

    //コンボボックスの文字列を追加
    cbox.AddText("Item 1");
    cbox.AddText("Item 2");
    cbox.AddText("Item 3");

    //コンボボックスを選択可能にする
    cbox.SetEnable(CP_TRUE);

    //コンボボックスをCPWindowに結びつける
    win.Add(&cbox);

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

この例では、chkboxで示されるチェックボックスにコールバック関数「OnCheck」が指定されています。
これにより、chkboxのチェックボックスにアクションがあった場合は、staticで定義された関数「OnCheck」が呼ばれることになります。
ここで、chkboxのチェックがはずされた場合に、cboxのコンボボックスを「cbox.SetEnable( )」にて非選択状態にしています。
この後に「cbox.Repaint()」を呼び出してcboxの再描画を行っています。


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


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


関連リンク


CPComboBoxクラス