CTreeView: Popup Menu



  • Moin, ich war schon bei codeguru, msdn & hab auch schon gesucht.
    Nur nix gescheites gefunden.

    Also, ich will ein Popupmenu für mein TreeCtrl.
    Ich möchte aber auch, das das Item wo der Rechte Mausklick drauf
    kommt, dann automatisch ausgewählt wird, sprich der Eintrag soll makiert bleiben.

    Code:

    void CLeftView::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    	UINT uFlags;
        HTREEITEM htItem = GetTreeCtrl().HitTest(point, &uFlags);
        if ((htItem != NULL) && (uFlags & TVHT_ONITEM)) 
    	{
                GetTreeCtrl().Select(htItem, TVGN_DROPHILITE);
    			CString strItemText = GetTreeCtrl().GetItemText(GetTreeCtrl().GetSelectedItem());
    			MessageBox(strItemText);
        }
    	CTreeView::OnRButtonDown(nFlags, point);
    }
    

    Ich bekomme immer noch das Falsche in der MsgBox angezeigt,
    obwohl der Eintrag korrekt ausgewählt wurde.
    Jemand ne Ahnung wie ich das hinbekomme ?

    Devil



  • du musst statt Select SelectItem verwenden.



  • hm, jetzt funktionierts 🙂

    Noch ne frage, kann ich HTREEITEM per == vergleichen,
    oder könnte es da probleme geben ?

    Devil



  • hm. ich bin mir nicht 100% sicher, aber ich denke
    HTREEITEM ist nur ein zeiger auf einen eintrag im baum.
    auf jeden falls ists fuer jeden treeview eindeutig.
    ich wuesste nicht warum du es nicht vergleichen koennen
    solltest. 🙂


Anmelden zum Antworten