|
既存のリストビューをオブジェクト化します
但し、プロパティのスタイルで表示を「レポート」に変更しておきます
|
LboxListview *LView; // グローバルで定義します
-----------------------------------
LView = new LboxListview( ::GetDlgItem( hDlg, IDC_LIST1 ), 0 ); // 作成
-----------------------------------
delete LView; // 削除
| |
|
新規作成
|
LboxListview *LView; // グローバルで定義します
-----------------------------------
LView = new LboxListview( hOwner, LBOX_LISTVIEW_CREATE ); // 作成
-----------------------------------
delete LView; // 削除
| |
|
罫線を表示する
|
|
文字列のみ指定すると、LVCFMT_LEFT が指定され、幅が 100 であるのと同等です
フォーマットは3種類指定できますが、第1カラムは必ず LVCFMT_LEFT になります
|
LView->AddColumn( "名前" );
LView->AddColumn( LVCFMT_RIGHT, 100, "サイズ" );
LView->AddColumn( "更新日時" );
LView->AddColumn( LVCFMT_CENTER, 100, "作成日時" );
| |
|
|
|
|
LboxString LWork;
int i;
for( i = 0; i < 10; i++ ) {
LView->AddRow();
LView->SetColumnText( 0, "ファイル名" );
LView->SetColumnPrintf( 1, "%d", i );
LWork.operator = ("2005/04/01");
LView->SetColumnText( 2, &LWork );
LView->SetColumnText( 3, LWork.szLboxString );
}
| |
|
AddRow メソッドでデータセット可能な行を作成します
SetColumnText メソッドで、カラムごとにデータをセットしていきます
SetColumnText の第2引数は、char * または LboxString * が使用できるので
LView->SetColumnText( 2, &LWork ) と
LView->SetColumnText( 3, LWork.szLboxString ) は同等です
※ LWork.szLboxString は、文字列オブジェクト内の文字列の先頭ポインタを返します
AddRow 実行直後は作成された行がカレントとなっているのでその行に対する
SetColumnText が有効です
※ カレント行を変更するには、SetCurrentRow メソッドを使用します
SetColumnPrintf は API 関数の wsprintf と同じフォーマットが使用できます
|
|
全ての行を列挙します
|
LboxString LWork;
int nRow;
nRow = -1;
while( LView->FindNextRow( &nRow ) ) {
LView->GetColumnText( 1, &LWork );
}
| |
|
選択状態の行を列挙します
|
LboxString LWork;
int nRow;
nRow = -1;
while( LView->FindNextSelectedRow( &nRow ) ) {
LView->GetColumnText( 1, &LWork );
}
| |
|
nRow には対象行の行番号がセットされます |
|
|
MsgOk(
"行数 = %d, カラム数 = %d",
LView->Count(),
LView->ColumnCount()
);
| |
|
|
|
|
LView->Fit( 1 ); // 指定カラムのみ最適化します
LView->Fit(); // 全てのカラムを最適化します
| |
|
|
|