2010-04-22 26 views
6

Intento crear un elemento de vista de lista como el explorador. Quiero obtener el elemento seleccionado cuando hago doble clic en él.Obtener el elemento seleccionado en ListView win32 API

Entonces puedo usarlo para obtener la ruta y encontrar el archivo para visualizar. Puedo hacerlo en treeview por senddlgmessage. Pero parece que no funciona en ListView.

+0

No se puede obtener el elemento seleccionado de ListView? ¿Qué no funciona? –

Respuesta

15

Si usted está usando un control ListView en bruto en C++, lo que necesita hacer algo como esto:

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

Muchas gracias. Leí tu perfil, estoy sorprendido y muy agradecido de conocer a un gurú como tú :) – nXqd

+0

una pregunta más: obtengo el índice, ¿qué debo hacer si quiero obtener su texto? – nXqd

+2

Usa la macro ListView_GetItem, pasando una estructura LVITEM con iItem establecido en el índice del elemento que te interesa. Solo por curiosidad, ¿por qué haces esto en winapi sin procesar? mfc es de gran ayuda si tiene que usar C++? WinForms es una ayuda aún mayor si se puede usar C# – Grammarian

Cuestiones relacionadas