[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