リストビュー

  オブジェクト作成



リストビューの作成方法は、既存のリストビューを使用する方法と新規に作成する方法があります

既存のリストビューは、主にリソースエディタでダイアログ上に貼り付けられる場合に使用します
新規に作成するのは、メインウインドウに実装する場合です

※ スケルトンライブラリではメインウインドウにリストビューが実装済みで、削除も内部で行います

既存のリストビューをオブジェクト化します
但し、プロパティのスタイルで表示を「レポート」に変更しておきます
  
LboxListview *LView;  // グローバルで定義します
-----------------------------------
LView = new LboxListview( ::GetDlgItem( hDlg, IDC_LIST1 ), 0 );  // 作成
-----------------------------------
delete LView;  // 削除
  

新規作成
  
LboxListview *LView;  // グローバルで定義します
-----------------------------------
LView = new LboxListview( hOwner, LBOX_LISTVIEW_CREATE );  // 作成
-----------------------------------
delete LView;  // 削除
  

罫線を表示する
  
LView->Grid();
  



  初期化



初期化方法には、リストビュー全体を初期化する(カラムは全て削除)方法と
行のみ削除する(カラムは残る)方法があります

リストビュー全体を初期化
  
LView->Initialize();
  

行のみ削除
  
LView->Reset();
  



  カラムの追加

文字列のみ指定すると、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();  // 全てのカラムを最適化します
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ