レポートビューの作成 |
CListCtrl m_list; //スタイル設定 LONG lStyle = GetWindowLong(m_tree.m_hWnd, GWL_STYLE); lStyle |= WS_VISIBLE | LVS_REPORT; m_list.Create(lStyle2, listRect, hDC, IDS_LISTCTRL); |
┌─┬─┬─┐ │1│2│3│←カラム └─┴─┴─┘ ┌─┬─┬─┐ │1│2│3│←アイテム ├─┼─┼─┤ │4│5│6│ ├─┼─┼─┤ │7│8│9│ ├─┼─┼─┤ │ │ │ │という並びです
LVCOLUMN構造体 | |
typedef struct _LVCOLUMN { UINT mask; int fmt; int cx; LPTSTR pszText; int cchTextMax; int iSubItem; #if (_WIN32_IE >= 0x0300) int iImage; int iOrder; #endif } LVCOLUMN, FAR *LPLVCOLUMN; | |
値 | 説明 |
mask | どの構造体メンバが有効かを示します |
fmt | 文字の表示位置などを設定 |
cx | カラムのサイズ(幅) |
pszText | アイテムの文字列(キャプション)を示します。 |
cchTextMax | 最大文字数 |
iSubImage | サブアイテムを含むかどうか。含む場合は数字を記述 |
iImage | イメージリスト中のイメージを指定 |
iOder | --- |
レポートビューの作成 |
//カラム設定 LVCOLUMN lvC; lvC.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; lvC.fmt = LVCFMT_LEFT; lvC.cx = 100; lvC.cchTextMax = 256; //カラムの設定 lvC.pszText = "属性"; lvC.iSubItem = 0; m_list.InsertColumn(0,&lvC); lvC.pszText = "要素"; lvC.iSubItem = 1; m_list.InsertColumn(1,&lvC); lvC.pszText = "値"; lvC.iSubItem = 2; m_list.InsertColumn(2,&lvC); |
LVITEM構造体 | |
typedef struct _LVITEM { UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; LPTSTR pszText; int cchTextMax; int iImage; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iIndent; #endif } LVITEM, FAR *LPLVITEM; | |
値 | 説明 |
mask | どの構造体メンバが有効かを示します |
iItem | アイテムの挿入位置 |
iSubItem | サブアイテムを含むかどうか。含む場合は数字を記述 |
state | アイテムの状態 |
stateMask | どの状態を有効にするか |
pszText | アイテムの文字列(キャプション)を示します。 |
cchTextMax | 最大文字数 |
iImage | イメージ指定 |
lParam | --- |
iIndent | その名の通りインデントの設定 |
レポートビューの作成 |
int CHogeView::OnCreate(LPCREATESTRUCT lpCreateStruct){ ・ ・ ・ LVITEM lvI; lvI.mask = LVIF_TEXT; lvI.iItem = 0; lvI.iItem = AddItems(lvI, "Data1", "Data2", "Data3"); lvI.iItem = AddItems(lvI, "Data4", "Data5", "Data6"); lvI.iItem = AddItems(lvI, "Data7", "Data8", "Data9"); } int CHogeView::AddItems(LVITEM lvI, char *c1, char *c2, char *c3){ lvI.iSubItem = 0; lvI.pszText = c1; nItem = m_list.InsertItem(&lvI); if(nItem == -1){ return 0; } lvI.iSubItem = 1; lvI.pszText = c2; m_list.SetItem(&lvI); if(nItem == -1){ return 0; } lvI.iSubItem = 2; lvI.pszText = c3; m_list.SetItem(&lvI); return nItem; } |