[C con Clase] SPREADSHEET en la Memoria
Juan
jmicanovelles en gmail.com
Mar Jun 3 20:52:05 CEST 2008
Hola Diego, mira en esta página web:
http://zairon.wordpress.com/2007/11/06/editable-listview-control/
Puedes hacer que el listview tenga rejilla,y hacer algunos arreglos, como controlar el edit que no se abra cuando le das al clik al mouse en una celda vacia y alguna cosilla mas que le puse para cerrar dicha ventana en el sitio oportuno, cuando has decidido cancelar la operación.
En el procedimiento de creación, el estilo extendido:
SendMessage(hListView, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
En SubClass_ListView_WndProc
case WM_KILLFOCUS:
DestroyWindow(hEditable);
break;
Creo que no venía en el progama.
Y esto en el procedimiento del dialogo:
case NM_DBLCLK:
{
int iItem=SendMessage(hListView,LVM_GETITEMCOUNT,0,0)-1;
if(((NMLISTVIEW *)lParam)->iItem >iItem)return FALSE;
if(((NMLISTVIEW *)lParam)->iItem < 0)return FALSE;
// I have to subclass!!!
SubClass_ListView_Editable(_hWndDlg, (NMLISTVIEW *)lParam);
}
break;
El del babygrid tambien funciona.
Meter datos ahí dentro, ya es cosa nuestra.
He hecho una pequeña base de datos y parece que funciona bien
Juan
El pasado 2008-05-27 00:19:44, Diego escribió:
D> Hola,
D> Estoy haciendo un program en el cual todo el entorno grafico, y en si todas las herramientas son personalizadas. Ya tengo los botones, los scrolls y al fin pude hacer los menus, pero todavia me falta un mundo.
D> Ahora estoy empezando el grid, ya que necesito una rejilla tipo excel para manejar datos, hacer sumas etc. La forma de representarlo graficamente ya esta casi resuelta, se parece mucho a lo que use en los menus, ademas tengo un codigo de otro grid en C++ llamado BabyGrid, que es muy bueno en la parte grafica. El problema viene al manejar los datos en la memoria, es algo complicado y todavia tengo muchas lagunas.
D> He estado investigando un programa de codigo abierto llamado gnumeric, para linux, y este tiene un Hashtable donde guarda todos las celdas, como lo haria un diccionario. Me han dicho que este programa tambien usa regiones y arreglos segmentados para hacer las operaciones mas eficientemente, pero no conozco los arreglos segmentados ni entiendo como puede funcionar un hash con regiones.
D> Ademas algunos miembros de la comunidad gnumeric me han dicho que estan trabajando para usar un quadtree, o un arbol de 4 ramas para dividir las celdas en regiones, pero tambien me es confuso. Por favor ayudenme. No estoy interesado en usar OLE o Active X, ya que necesito yo mismo hacer las grillas, y no depender de Excel.
D> Gracias, Saludos
D> Diego Mendieta
D> Tendre un Hashtable, como la que se utiliza en los diccionarios, donde se guardaran las celdas utilizadas.
D> _______________________________________________
D> Lista de correo Cconclase Cconclase en listas.conclase.net
D> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
D> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase