2010-04-22 33 views
6

Tôi cố gắng tạo mục xem danh sách như trình khám phá. Tôi muốn có được các mục đã chọn khi tôi nhấp đúp vào nó.Nhận mục đã chọn trong ListView win32 API

Vì vậy, tôi có thể sử dụng nó để lấy đường dẫn và tìm tệp để hiển thị. Tôi có thể làm điều đó trong treeview bằng senddlgmessage. Nhưng có vẻ như nó không hoạt động trên listview.

+0

Bạn không thể nhận được các sản phẩm được chọn từ ListView? Cái gì không hiệu quả? –

Trả lời

15

Nếu bạn chỉ sử dụng một điều khiển ListView liệu trong C++, bạn cần phải làm điều gì đó như thế này:

// Get the first selected item 
int iPos = ListView_GetNextItem(hListView, -1, LVNI_SELECTED); 
while (iPos != -1) { 
    // iPos is the index of a selected item 
    // do whatever you want with it 

    // Get the next selected item 
    iPos = ListView_GetNextItem(hListView, iPos, LVNI_SELECTED); 
} 
+0

Cảm ơn rất nhiều. Tôi đọc tiểu sử của bạn, tôi ngạc nhiên và thực sự biết ơn khi gặp một guru như bạn :) – nXqd

+0

một câu hỏi nữa: Tôi nhận được chỉ mục, tôi nên làm gì nếu tôi muốn nhận được văn bản của nó? – nXqd

+2

Sử dụng macro ListView_GetItem, chuyển qua cấu trúc LVITEM với iItem được đặt thành chỉ mục của mục bạn quan tâm. Chỉ vì tò mò, tại sao bạn làm điều này trong winapi thô? mfc là một trợ giúp lớn nếu bạn phải sử dụng c + +? WinForms là một trợ giúp lớn hơn nếu bạn có thể sử dụng C# – Grammarian

Các vấn đề liên quan