tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
525
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von CodeFatal
    CodeFatal CodeFatal ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Beiträge
    509
    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 :
    1
    2
    3
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
     
    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
     
    Grüß die Welt, dann grüßt sie dich!

    Keine Panik, die Titanic ist schon gesunken!

  2. #2
    Avatar von CodeFatal
    CodeFatal CodeFatal ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Beiträge
    509
    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
     
    Grüß die Welt, dann grüßt sie dich!

    Keine Panik, die Titanic ist schon gesunken!

Ähnliche Themen

  1. CListCtrl item löschen
    Von CodeFatal im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 09.07.08, 11:34
  2. VB6: Problem mit ComboBox Change
    Von Menduso im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 19.03.08, 15:22
  3. CListCtrl-Problem
    Von CodeFatal im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 06.06.06, 22:18
  4. Antworten: 2
    Letzter Beitrag: 08.11.04, 11:06
  5. CListCtrl wie heisst Handler für Item select change ?
    Von Indian im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 21.09.04, 10:57