WxWidgets/wxListCtrl
出典: YKAwiki
目次 |
[編集]
概要
ExcelやJTableみたいな表を作れるコントロールです。
[編集]
生成・配置
次のインクルードが必要です
#include <wx/listctrl.h>
ぶっちゃけて言うと一個一個手で配置するのは超面倒なので、 wxGladeを使って配置・生成しましょう。 以下生成されたコントロールオブジェクトのインスタンスを
wxListCtrl* samplectrl
とします。
[編集]
初期化・全削除
カラムも全て削除したい場合
samplectrl->ClearAll();
カラムは残して要素だけ削除したい場合
samplectrl->DeleteAllItems();
[編集]
カラム追加
例としてCOLUMN_NUM=3個のカラムを追加します。
char names[][100] = { "ID", "Name", "NickName"};
for(int index = 0; index < COLUMN_NUM; index ++){
samplectrl->InsertColumn(index, wxConvertMB2WX(names[index]));
}
[編集]
ロウ追加
例としてROW_NUM=10個の行を追加します。
const int BUF_MAX = 100;
for(int i = 0; i < ROW_NUM; i ++){
wxListItem item;
//行番号
item.SetId(i);
//列番号
item.SetColumn(0);
char buf[BUF_MAX];
sprintf(buf, "%d", i);
item.SetText(wxConvertMB2WX(buf));
samplectrl->InsertItem(item);
for(int column = 1; column < COLUMN_NUM; columnt ++){
item = wxListItem();
item.SetId(i);
item.SetId(column);
item.SetText(wxConvertMB2WX(buf));
samplectrl->SetItem(item);
}
}
コツは、最初だけ挿入を行い、それ以降はSetItem()を使う点です。 そうしないと問題が生じます。
