Multi-Column Tree View TVN_ITEMEXPANDING wird nicht aufgerufen



  • Hallo zusammen,
    ich habe mir von folgendem Link http://www.codeguru.com/cpp/controls/treeview/multiview/article.php/c3985/ die Klasse ins Projekt hinzugefügt und möchte nun mit meiner abgeleiteten Klasse auf TVN_ITEMEXPANDING reagieren.
    Mit CTreeCtrl hat das noch funktioniert. Allerdings will es mit dieser Multi-Column TreeView nicht so wie ich will.

    In einem anderen Artikel habe ich gelesen das dies mit dier Überschreibung von ON_WM_LBUTTONDOWN liegen kann.
    Jetzt weiß ich aber nicht wie ich dem ListCtrl beibrigen kann das es diese Nachricht trotzdem sendet.

    Wenn jemand ne Idee hat, das bitte posten ich probier hier schon seid gestern rum.

    Header-Datei:

    //{{AFX_MSG(CDirReaderTreeView)
    afx_msg void OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult);
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    

    Quellcode-Datei:

    BEGIN_MESSAGE_MAP(CDirReaderTreeView, CColumnTreeView)
    	//{{AFX_MSG_MAP(CDirReaderTreeView)
    	ON_NOTIFY(TVN_ITEMEXPANDING, TreeID, OnItemexpanding)
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    void MeineKlasse::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    	...
    }
    

  • Mod

    TVN_ITEMEXPANDING wird an das Parent gesendet und nicht an das Control selber!
    Du musst ON_NOTIFY_REFELCT in einen View nutzen um die eigenen Nachricten im Control selbst zu behandeln!



  • Also ich soll ich das ON_NOTIFY_REFLECT in meiner abgeleiteten Klasse implementieren oder in der Basis-Klasse?

    mfg Oliver


  • Mod

    Wenn Du den Handler im View selber möchtst dann musst Du ON_NOTIFY_REFLECT nutzen. Das Parent Deines Views interessiert das an sich gar nichts... Was willst Du mit einem Handler in Deinem Frame?

    Versuche mal zu verstehen, wer eigentlich WM_NOTIFY und WM_COMMAND Nachricten bekommt, und warum es _REFLECT Handler gibt...



  • Ich möchte mit diesem Handler meine TreeView füllen.
    Ich füge bei Items die SubItems haben immer erst einen Dummy ein. Diesen Dummy lösche ich dann und füge die eigentlichen Subitems ein.


  • Mod

    Dann weißt Du ja, was Du zu tun hast... 🕶



  • Ich kann dem Ganzen ned folgen und hab das Problem immernoch nicht gelöst, aber trotzdem danke für die Hilfe.

    mfg Oliver


Anmelden zum Antworten