コンボボックスの再描画を促します。
書式
解説
コンボボックスの再描画を促します。
イベントなどで動的にコンボボックスの内容が変化した(表示文字列が切り替わった・非選択状態になった、など)、という場合には「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クラス