2010-07-10 64 views
5

Tôi đang gặp sự cố khi thêm các mục vào một điều khiển ListView. Khi tôi cố gắng thêm các mục vào ListView của tôi, không có gì xảy ra. Tôi đã sử dụng mã này trước đây, và nó không hoạt động.Thêm các mục vào một ListView?

Tôi đã 3 cột, với các giá trị subitem thiết lập để 1, 2, và 3.

LVITEM item; 
    item.mask = LVIF_TEXT; 
    item.cchTextMax = 6; 

    item.iSubItem = 1; 
    item.pszText = TEXT("12345"); 
    item.iItem = 0; 
    ListView_InsertItem(hListView, &item); 

    item.iSubItem = 2; // zero based index of column 
    item.pszText = TEXT("23456"); 
    ListView_InsertItem(hListView, &item); 

    item.iSubItem = 3; // zero based index of column 
    item.pszText = TEXT("34567"); 
    ListView_InsertItem(hListView, &item); 

Trả lời

0

Bạn đã gọi ListView_InsertColumn (link)? Một cột sẽ không hiển thị trong một ListView ở chế độ "chi tiết" (một cột) cho đến khi bạn thực hiện. Do đó, nếu bạn chưa thêm bất kỳ cột nào, bạn sẽ không thấy gì cả. (Bất kể nếu bạn đang sử dụng tiêu đề hay không)

+0

tôi đã thêm cột, nhưng đối với một số lý do, không có gì được hiển thị. Dù sao, mã bằng cách nào đó cố định chính nó. –

8

Từ MSDN:

Bạn không thể sử dụng ListView_InsertItem hoặc LVM_INSERTITEM để chèn subitems. Thành viên iSubItem của cấu trúc LVITEM phải bằng không. Xem LVM_SETITEM để biết thông tin về cài đặt các phụ đề con.

Hãy thử sử dụng ListView_SetItem() cho các cột thứ cấp (subitems 1 và 2) sau khi thêm cột đầu tiên (subitem 0) với ListView_InsertItem().

+0

Cảm ơn, điều đó đã hiệu quả. :) –

1

ListView_SetItemText (link) nên được sử dụng cho các mục phụ.

Ví dụ mã:

ListView_SetItemText(hListView, 0, 1, TEXT("12345")); 
ListView_SetItemText(hListView, 0, 2, TEXT("23456")); 
ListView_SetItemText(hListView, 0, 3, TEXT("34567")); 
Các vấn đề liên quan