[C con Clase] Insertar datos ListView

Steven Davidson srd4121 en njit.edu
Vie Mayo 16 10:39:53 CEST 2008


Hola Fernando,

Fernando wrote:
> Hola Steven, aún no quiere jalar este control, mira te pego el código
> completo del proc q intenta gestionar al LV:
> 

Veamos el código.

> void InsertaElementos(HWND hDlg)
> {
>     static LVITEM liEle;    
>     int iFil=0, iCol=0;
>     
>     static char *pcElemListView[4][6]=
>     {
>         {"5","KG","0001","HUEVO ROJO","12.00","65.00"},
>         {"10","CN","0005","CONO VACIO",".50","5.00"},
>         {"2","KG","0002","HUEVO BLANCO","13.00","26.00"},
>         {"7","CJ","0006","LECHE LALA LIGHT","10.50","73.50"},
>     };
>     
>     for(iFil=0; iFil<4; iFil++)
>     {
>         liEle.mask = LVIF_TEXT;
>         liEle.iItem = iFil ;
>         for(iCol=0; iCol<6; iCol++)
>         {
>             liEle.iSubItem = iCol;
>             liEle.pszText= pcElemListView[iFil][iCol];
>             liEle.cchTextMax = strlen(pcElemListView[iFil][iCol]);

Este miembro 'cchTextMax' de la estructura es ignorado, si asignas una 
cadena terminada en cero a 'pszText'.

>             if(iCol==0) ListView_InsertItem(hNtaOper, &liEle);
>             else ListView_SetItem(hNtaOper, &liEle);
>         }
>     }
>     ListView_SetExtendedListViewStyle(hNtaOper, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP);

Esta función acepta un manipulador de ventana 'hDlg', pero no lo usas. 
Sin embargo, sí usas 'hNtaOper', que supongo que es el manipulador del 
control "list-view". Asegúrate de que esto es así.

> }
> 
> Este proc lo llamo desde el proc del diálogo q alberga al boton:
> ...
>  case IDB_NTA_AGREGAR:
>                     InsertaElementos(hDlg);                    
>                     break;

Como ya he dicho, pasas el manipulador del cuadro de diálogo, pero no 
haces nada con ello. De todas maneras, sugiero pasar el manipulador del 
control "list-view" a 'InsertaElementos'. Esto sería,

InsertaElementos( GetItem( hDlg, IDC_LISTVIEW ) );

O cuál sea el número de identificación del control "list-view".

> Oye cómo puedo pegar aqui la imagen del resultado ListView, lo
> intenté c ctrl+c y ctrl+v y no jaló, la idea es ser más ilustratico
> mi caso(error) GRACIAS...
> 

Para capturar una imagen de la ventana activa, pulsa ALT+PrintScreen. Si 
quieres toda la pantalla (o escritorio) entonces pulsa CTRL+PrintScreen. 
Cualquier método producirá una imagen BMP que se copiará al portapapeles.


Espero que todo esto te ayude.

Steven






Más información sobre la lista de distribución Cconclase