CListCtrl::SortItems
Los elementos de la vista de lista de las ordenaciones utilizando una comparación definido por la aplicación funciona.
BOOL SortItems(
PFNLVCOMPARE pfnCompare,
DWORD_PTR dwData
);
Parámetros
[in] pfnCompare
dirección de la función definido por la aplicación de la comparación.La operación de ordenación llama a la función de comparación cada vez que el orden relativo de dos elementos de lista debe ser determinado. La función de comparación debe ser un miembro estático de una clase o función independiente que no es miembro de ninguna clase.
[in] dwData
Valor definido por la aplicación que se pasa a la función de comparación.
Valor devuelto
true si el método correctamente; si no false.
Comentarios
este método cambia el índice de cada elemento para reflejar la nueva secuencia.
La función de comparación, pfnCompare, tiene el formato siguiente:
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
La función de comparación debe devolver un valor negativo si el primer elemento precede al segundo, un valor positivo si el primer elemento sigue el segundo, o pone a cero si los dos elementos son iguales.
El parámetro de lParam1 es el valor de 32 bits asociado al primer elemento que se compara, y el parámetro de lParam2 es el valor asociado al segundo elemento. Éstos son los valores especificados en el miembro de lParam de la estructura de LVITEM de los elementos cuando se insertarán en la lista. El parámetro de lParamSort es igual que el valor de dwData .
Este método envía el mensaje de LVM_SORTITEMS , que se describe en Windows SDK.
Ejemplo
A continuación se muestra una función simple de comparación que da lugar a los elementos que están ordenados por sus valores de lParam .
// Sort items by associated lParam
int CALLBACK CListCtrlDlg::MyCompareProc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort)
{
UNREFERENCED_PARAMETER(lParamSort);
return (int)(lParam1 - lParam2);
}
// Sort the items by passing in the comparison function.
void CListCtrlDlg::Sort()
{
m_myListCtrl.SortItems(&CListCtrlDlg::MyCompareProc, 0);
}
Requisitos
encabezado: afxcmn.h
Este control es compatible con Windows NT 3,51 o posterior.