2014-01-23 34 views
1

我試圖創建CListrCtrl簡單,其具有一個元素,但它並沒有告訴我任何事情:的Windows的CListCtrl和組

EnableGroupView(TRUE); 

LVGROUP group = { 0 }; 
group.cbSize = sizeof(LVGROUP); 
group.iGroupId = 1; 
group.state = LVGS_NORMAL; 
group.mask = LVGF_GROUPID | LVGF_HEADER | LVGF_STATE | LVGF_ALIGN; 
group.uAlign = LVGA_HEADER_LEFT; 

int idx = InsertGroup(0, &group); 

LVITEM item = {0}; 
item.mask = LVIF_TEXT | LVIF_IMAGE;// | LVIF_GROUPID; 
item.iItem = 0; 
item.iSubItem = 0; 
item.pszText = L"aa"; 
item.cchTextMax = 3; 
item.state = 0; 
item.stateMask = LVIS_SELECTED; 
item.iGroupId = idx; 
InsertItem(&item); 

BTW,我可以看到這個項目只有當我不啓用組查看模式。難道我做錯了什麼?

PS:Windows 7的MSVC + 2010

回答

3

LVITEM::iGroupId成員需要一個組ID但你傳遞一個組索引代替。這就是爲什麼你看不到該項目 - 你將它添加到一個不存在的組。您需要將item.iGroupId設置爲group.iGroupId(即1)。

+0

謝謝,那是我的錯誤。對於像CListCtrl這樣的控件的樣本不足,我感到非常驚訝... – Tutankhamen