Listenelement sortieren

Hallo Experten,
ich habe zwei Probleme:
1- Nachrichten Funktion HDN_ITEMKLICK reagiert nicht auf Anklick des Kopfes
2- wie kann ich die Sätze des Listenelements nur nach bedarf sortieren
die Funktion
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
hat Parameter: LVS_SORTASCENDING und LVS_SORTDESCENDING
wie kann ich sie anbinden?
Hat vielleicht jemand eine für Listenfelder Sortierungsmethode?

Zeilen in meinem Programm:
m_ctrlData.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
CRect aRect;
LV_COLUMN Column; //Spalte anlegen
Column.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT; // und formatieren
Column.fmt=LVCFMT_LEFT;

// zwei Spalten angelegt, obwohl eine wird nicht sichtbar
m_ctrlData.InsertColumn(0,&Column);
Column.pszText=„Empfänger“;
Column.cx=(aRect.right-aRect.left)/20*18+3;

m_ctrlData.InsertColumn(0,&Column);

CString Name;
CString TelNr;

LV_ITEM ins={LVIF_TEXT,m_ctrlData.GetItemCount(),0};

// — in einer Schleife aus Festplatte gelesen
ins.pszText = Name;
pos = m_ctrlData.InsertItem(&ins); // pos initialisieren
m_ctrlData.SetItemText(pos,1,TelNr); // in die nicht sichtbare Spalte
// -----------
Grüße,
Lech

Hallo,
noch eine Kleinigkeit.
Ich habe festgestellt, daß die Nachrichten Funktionen für ein Listenelement:

OnItemchangedData(NMHDR* pNMHDR, LRESULT* pResult)
und
OnClickData(NMHDR* pNMHDR, LRESULT* pResult)

werden mehrmals Ausgeführt, obwohl nur per ein Maausklick, oder mit der Richtunstaste die Auswahl statt findet.
Ist das zu vermeiden?

Mfg
Lech

Liebe Experten,

vielleicht am einfachsten ist die Frage selbst beantworten?

Mit der Funktion HeaderClicked hat sich erledigt, habe neue Funktion gebastelt.
void myDlg::open_mouth:nHeaderClicked(NMHDR *pNMHDR, LRESULT *pResult)
{

HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;

if( phdn->iButton == 0 )// für Anklick auf Kopf
{

// m_ctrlData.SortItems( ??? );
}
}

Jeztz drehe mich im Kreis zwischen LVM_SORTITEMS,
m_ctrlData.SortItems( … und PFNLCOMPARE

Mfg
Lech