commctrl.h

Macro ListView_SortItemsEx

Usa una función de comparación definida por la aplicación para ordenar los ítems en un control list-view. El índice de cada ítem cambia para reflejar al nueva secuencia. Se puede usar esta macro o enviar el mensaje LVM_SORTITEMSEX explícitamente.

Definición

BOOL ListView_SortItemsEx(
    HWND hwndLV,
    PFNLVCOMPARE _pfnCompare,
    LPARAM _lPrm
);

Descripción

hwndLV
Un manipulador del control list-view.
_pfnCompare
Un puntero a una función de comparación definida por la aplicación. La función de comparación es invocada durante el proceso de ordenación cada vez que el orden relativo de dos ítems de la lista necesita ser comparado.
_lPrm
Valor definido por la aplicación que es pasado a la función de comparación.

Valor de retorno

Devuelve TRUE si tiene éxito, o FALSE en caso contrario.

Observaciones

La función de comparación tiene el siguiente formato:

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

Donde lParam1 es el índice del primer ítem y lParam2 el índice del segundo. El parámetro lParamSort de ListView_SortItemsEx es pasado a la función de retrollamada como tercer parámetro.

La función de comparación debe retornar un valor negativo si el primer ítem debe preceder al segundo, un valor positivo si el primer ítem debe seguir al segundo, o cero si los dos ítems son equivalentes.

Esta macro es similar a ListView_SortItems, excepto por el tipo de información pasado a la función de comparación. Con ListView_SortItemsEx, se pasa el índice del ítem en lugar del valor de lparam.

Hay que tener en cuenta que durante el proceso de ordenación, el contenido del list-view es inestable. Si la función de retrollamada envía cualquier mensaje al control list-view, el resultado es impredecible.