Rechter Mousebutton im Tree

anmae

Erfahrenes Mitglied
Hallo,

ich öffne ein Kontextmenü beim Klicken mit dem rechten Mousebutton in einen Baum.
Wenn ich aber auf die GetSelectetItem zugreife bekomme ich nicht das Item auf welches ich geklickt habe. Wie setze ich die Selection auf dieses Item?

Danke
 
meine Idee ist ja irgendwie die Mausposition auszulesen und mit dem Rect der Items zu vergleichen.
Aber das muß doch auch einfacher gehn.
Der jeweilige Item ist ja auch - solange das Menü geöffnet ist - selektiert, doch die Auswahl springt beim Verlassen des Menüs wieder auf den vorher markierten Item zurück.

Ich kann über GetSelectetItem immer nur den vorherig selektierten bekommen.
 
Benutze HitTest um das Item unter der Maus zu bekommen. Beim Rechtsklick wird das Item darunter nur visuell selektiert, also nicht wirklich.
 
hm, ok

habs nun so:

Code:
 	CPoint  ptMousePos ;
	ptMousePos = (CPoint) GetMessagePos();
	ScreenToClient(&ptMousePos);

	UINT uFlags;
	HTREEITEM htItem;
	
	htItem = mc_GroupTree.HitTest( ptMousePos, &uFlags );

	if( htItem == NULL )
		return;

mein hItem ist allerdings immer NULL.

ich denke das ScreenToClient nicht ordendlich klappt.
Geht das anders?
 
Du musst die Client-Koordinaten vom Tree nehmen:

mc_GroupTree.ScreenToClient( &ptMousePos );
 
Zurück