Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


SortItem u otro modo de ordenar un Clistrctrl

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

SortItem u otro modo de ordenar un Clistrctrl

Notapor oscargim el Mar Oct 16, 2007 11:37 pm

Hola estimados, he visitado cientos de paginas de toda clase de idioma y no puedo comprender como lograr ordenar un CListrCtrl basandome en una columna
Mi ejemplo es este

Código: Seleccionar todo
   DWORD dwStyle=GetWindowLong(m_lista.GetSafeHwnd(),GWL_STYLE);
   dwStyle &= ~LVS_TYPEMASK;
   dwStyle |= LVS_REPORT;
   SetWindowLong(m_lista.GetSafeHwnd(),GWL_STYLE,dwStyle);
   m_lista.SetExtendedStyle(m_lista.GetExtendedStyle() | LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );// para seleccionar una fila completa de una
   m_lista.InsertColumn(0,"cadena1",LVCFMT_LEFT,40);
   m_lista.InsertColumn(1,"cadena2",LVCFMT_LEFT,100);
   m_lista.InsertColumn(2,"entero",LVCFMT_LEFT,80);

de esta manera creo mi CLisCtrl como reporte.

Lo que quiciera es que alguien me explique de manera sencilla como puedo utiliar el SortItem u otra funcion que me ordene numericamente en forma descendente por los valores de la columna "entero".
Por favor no me linkeen a code proyect u otros sitios similares.

Muchas gracias desde ante mano. Un dato mas es que hago consulta a una bd de aproximadamente 600.000 registros y cargo el listctrl aproximadamente 1.900 de esos registros en forma desordenada, por eso quiero ordenar con alguna tecnica que no sea muy pesada para el procesador(ejemplo burbuja), y es imposible ordenarlo desde la BD ya que comparte la informacion con otros 9 modulos (clases hermanas).

MILES DE GRACIAS ES DE VITAL IMPORTANCIA PARA MI ESTA AYUDA
oscargim
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Mar May 09, 2006 5:53 am

Notapor oscargim el Mar Oct 16, 2007 11:42 pm

Solo para aclarar mi proyecto es MFC basado en dialogos en VC++ 6.0
oscargim
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Mar May 09, 2006 5:53 am

Re: SortItem u otro modo de ordenar un Clistrctrl

Notapor ivancp el Jue Oct 18, 2007 4:56 pm

Te sugiero seguir las instrucciones de la pagina siguiente.

http://support.microsoft.com/kb/250614

Tienes que notar que se utiliza la funcion SetItemData, esta funcion asigna la referencia de un objeto y lo almacena (en alguna parte) de un item del listctrl.
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm

Re: SortItem u otro modo de ordenar un Clistrctrl

Notapor ivancp el Jue Oct 18, 2007 5:00 pm

Me olvidaba,

por defecto va a crear una linea de codigo como la que sigue:

Código: Seleccionar todo
   ON_NOTIFY(HDN_ITEMCLICK, IDC_LIST1, OnItemclickList1)


Cambialo por esta linea

Código: Seleccionar todo
ON_NOTIFY(HDN_ITEMCLICK, 0, OnItemclickList1)
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados