[C con Clase] Problema con control Listview

Kyosuke Kasuga kyosuke_cl en yahoo.es
Mar Feb 12 03:54:17 CET 2008


Hi!!!, yo molestando de nuevo, bueno mi problema es que estoy usando
por primera vez un control ListView, pero no logro hacer k me funcione,
he logrado hacer k me ingrese un codigo, pero no 2 columnas como kiero,
ademas me ingresa una columna cuando se le da la gana, la verdad no
entiendo del todo bien como funciona este control, yo lo que necesito es
que me guarde los resultados de una consulta en MySQL en el control
ListView en 2 columnas y varias filas, cualkier ayuda o sugerencia será
bien recibida, de antemano muchas gracias.  Les dejo el codigo de lo k he
hecho hasta el momento, estoy haciendo el programa en Dev-C++ en Win
XP.
   
  bool BuscarList(HWND hwnd, char *maquina, char *usuario, char *clave,
char *dato, char *Plantilla, int IDC)
{
  LVITEM Item;  
  LVCOLUMN Columna;
  char muestra[2][51];  
  char *Consulta;  
  char Mensaje[90];
  MYSQL_ROW Campos;
  MYSQL_RES *respuesta;
  int ancho, total, columnas, i;
  
  Item.mask = LVIF_TEXT; //| LVIF_IMAGE | LVIF_PARAM | LVIF_STATE; 
  Item.state = 0; 
  Item.stateMask = 0; 
    if (!(MisDatos = mysql_init(0))){
      return false;
  }
  if (!mysql_real_connect(MisDatos, maquina, usuario, clave,
"Restorant", MYSQL_PORT, NULL, 0)){
      sprintf(Mensaje, "Error : %s", mysql_error(MisDatos));
      MessageBox (hwnd, Mensaje, "Chanchichó", MB_ICONEXCLAMATION);
      mysql_close(MisDatos);
      return false;
  }
  /* Se formula consulta para leer datos*/
  ancho = strlen(Plantilla) + strlen(dato);
  Consulta = new char[ancho];
  sprintf(Consulta, Plantilla, dato);
  
  mysql_query(MisDatos, Consulta);
  
  if ((respuesta = mysql_store_result(MisDatos))){
     total = (int) mysql_num_rows(respuesta);
     columnas = (int) mysql_num_fields(respuesta);
     
     Columna.iSubItem = 0;
     Columna.pszText = "Código";
     Columna.cx = 60;
     Columna.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; 
     ListView_InsertColumn(GetDlgItem(hwnd, IDC), 0, &Columna);
     
     Columna.iSubItem = 1;
     Columna.pszText = "Descripción";
     Columna.cx = 100;
     Columna.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
     ListView_InsertColumn(GetDlgItem(hwnd, IDC), 1, &Columna);
     
     for (i=0;i<total; ++i){
        Campos = mysql_fetch_row(respuesta);
        
        strcpy(muestra[0],Campos[0]);
        strcpy(muestra[1],Campos[1]);
                    
        Item.iItem = i;
        Item.iImage = i;
        Item.iSubItem = 0;
        Item.lParam = (LPARAM) &muestra;
        Item.pszText = LPSTR_TEXTCALLBACK;
        
        ListView_SetItemText(GetDlgItem(hwnd, IDC), i, 0, muestra[0]);
        ListView_SetItemText(GetDlgItem(hwnd, IDC), i, 1, muestra[1]);
        
        SendDlgItemMessage( hwnd, IDC, LVM_INSERTITEM, 0, (LPARAM)&Item
);
        
        sprintf(Mensaje, "Dato : %s", Campos[1]);
        MessageBox (hwnd, Mensaje, "Chanchichó", MB_ICONEXCLAMATION);
     }
     mysql_free_result(respuesta);
  }
  else{
      delete[] Consulta;
      mysql_close(MisDatos);
      return false;
  }
  delete[] Consulta;
  mysql_close(MisDatos);
  return true;
}



Entre más numerosos somos, más cerca estamos de nuestra propia extinción. 

http://bisbirudolfo.blogspot.com/
       
---------------------------------

¿Con Mascota por primera vez? - Sé un mejor Amigo
Entra en Yahoo! Respuestas.
  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080212/f7818b02/attachment.html>


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