2010-04-22 14 views
6

Ich versuche, Listenansicht Element wie Explorer zu erstellen. Ich möchte den ausgewählten Artikel erhalten, wenn ich darauf doppelklicke.Get ausgewählten Artikel in ListView win32 API

So kann ich es verwenden, um den Pfad und finden Sie die Datei zur Anzeige. Ich kann es in treeview durch senddlgmessage tun. Aber es sieht so aus, als ob es bei Listview nicht funktioniert.

+0

Sie nicht das ausgewählte Element aus Listview bekommen? Was funktioniert nicht? –

Antwort

15

Wenn Sie nur ein rohes Listview-Steuerelement in C++ verwenden, müssen Sie so etwas wie dies tun:

// 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

Vielen Dank. Ich lese dein Profil, ich bin überrascht und wirklich dankbar, einen Guru wie dich zu treffen :) – nXqd

+0

eine weitere Frage: Ich bekomme den Index, was soll ich tun, wenn ich seinen Text bekommen möchte? – nXqd

+2

Verwenden Sie das ListView_GetItem-Makro und übergeben Sie eine LVITEM-Struktur, wobei iItem auf den Index des Artikels eingestellt ist, an dem Sie interessiert sind. Aus reiner Neugier, warum machst du das in rohen Winapi? MFC ist eine große Hilfe, wenn Sie C++ verwenden müssen? WinForms ist eine noch größere Hilfe, wenn Sie C# – Grammarian