CTreeCtrl und Abfrage von Ereignissen



  • Ich suche schon seit Stunden nach einer Möglichkeit von einem CTreeCtrl eine Nachricht zu bekommen wenn die Checkbox im Baum verändert wird.

    Weiss irgendwer wie man dem doofen Teil in diesem Fall eine Nachricht entlockt?
    😕

    Danke

    Mathias



  • Wer lange genug sucht der findet. 😃

    Da anscheinend niemand lust hatte mich zu erleuchten. Kopiere ich mal die gefundene Lösung...

    Ereignis NM_CLICK (für deinen Tree) in Ableitung von CTreeCtrl abfangen und dann...

    void CMeinDialog::OnClickTree(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NMTREEVIEW* pNMTreeView = (NMTREEVIEW*)pNMHDR;
    
    unsigned int uFlags;
    
    POINT pt;
    GetCursorPos( &pt );
    m_Tree.ScreenToClient( &pt );
    
    HTREEITEM hItem = m_Tree.HitTest( pt, &uFlags );
    
    if ( uFlags & TVHT_ONITEMSTATEICON)
    {
    // der Check hat sich geändert! Check ändern
    m_Tree.SetCheck( hItem, !m_Tree.GetCheck( hItem ) ); 
    
    *pResult = 1;
    return;
    }
    
    *pResult = 0;
    }
    


  • Das ist auch Jahre später noch hilfreich - Danke! 🙂

    Philipp


Anmelden zum Antworten