Item Change Problem bei CListCtrl

CodeFatal

Erfahrenes Mitglied
Hallo,

ich habe mal wieder ein Problem mit meinem CListCtrl.

Ausgang:
- Ein CListCtrl
- Ein CEdit

Gewollte Aktion bei Auswahl eines Item in der CListCtrl:

1) Wenn bereits ein Icon ausgewählt
- Prüfen ob der Inhalt vom CEdit != dem Text eines Feldes in dem CListCtrl ist.
Wenn Text nicht passt, dann Frage über MessageBox ob Text im CListCtrl geändert werden soll.
2) Neues Icon selectieren und focussieren (Standradverhalten)
3) Text eines Feldes des CListCtrl in das CEdit schreiben.

Bisher bearbeitete Messages:
Code:
ON_NOTIFY(NM_CLICK, START_ID_LIST, OnClickList)
ON_NOTIFY(LVN_ITEMCHANGING, START_ID_LIST, OnLvnItemchangingList)
ON_NOTIFY(LVN_ITEMCHANGED, START_ID_LIST, OnLvnItemchangedList)
Was ich nun beobachte ist mir schleierhaft.
1) Die LVN_ITEMCHANGING wird mehrfach gerufen (uOld- und uNewState ändern sich aber jedesmal).
2) LVN_ITEMCHANGED wird nicht immer ausgeführt.
3) Wenn ich einen Haltepunkt einsetze dann werden weniger Messages verarbeitet.

Mein Code der entsprechenden Funktionen
Code:
void CMyDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
/*
Hier wird selektierter Text aus CListCtrl in CEdit kopiert
*/
    *pResult = 0;

}

void CMyDlg::OnLvnItemchangingList(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
/*
Hier wird überprüft ob Text aus CEdit passt und falls nötig an die richtige Stelle kopiert.
*/
    *pResult = 0;
}

void CMyDlg::OnLvnItemchangedList(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
/*
Hier wird selektierter Text aus CListCtrl in CEdit kopiert
*/
    *pResult = 0;
}

Hoffe hier kann mir mal wieder jemand aus der Klemme helfen.

Gruß und Dank im Vorraus
Michael
 

CodeFatal

Erfahrenes Mitglied
Problem gelöst.
Hab die pResult nicht angefasst und
einen Fehler in /*Hier wird...*/ behoben.

Versteh zwar nicht warum das jetzt sich richtig verhält aber so ist gut.

Gruß
Michael