Popup Menü mir Rechtklick

jokey2

Erfahrenes Mitglied
Hallo Alle!

Ich habe folgendes Problem:
In einer Anwendung (VS6) habe ich ein splitter window, dessen LeftView ein TreeView ist. In diesem TreeView möchte ich per Rechtsklick ein Popup-Menü öffnen, das verschiedene Aktionen für das geklickte Baumelement anbietet. Ich habe ein Menü im Resource Editor erstellt und es mit dem View verbunden (über ClassWizard) und im LeftView eine Messagehandlerfunktion für NM_RCLICK angelegt.
Code:
void CLeftView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
{
...
}
Nun habe ich folgende Fragen:
1. In was muß ich den NMHDR* konvertieren, um die Daten zu erhalten? Ich habe es mit einem NMTREEVIEW* versucht, aber die Handles für ItemOld und ItemNew sind NULL.
2. Wie erhalte ich das Treeitem, auf das geklickt wurde?
3. Wie zeige ich das Popup Menü an und verarbeite die Klicks darauf?

Vielen Dank schonmal, ich wäre echt froh, wenn mir da einer weiterhelfen könnte.

jokey2
 
Die Frage 3 habe ich inzwischen herausgefunden, un zwar mache ich das folgendermaßen:
Code:
void CLeftView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
{
POINT pt;
m_menuTest.LoadMenu(IDR_MENU_POPUP_1);
 
GetCursorPos ( & pt );
hItem = Tree.HitTest(pt, &uFlags );
 
m_menuTest.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, CWnd::GetParent(), NULL);
}
Allerdings sehe ich nur einen senkrechten Streifen vom Menü, einige Pixel breit. Vor allem sehe ich den Text nicht. Wenn ich allerdings auf den Streifen klicke, wird die entsprechende MessageMap Funktion angesprungen.
Kann mir vielleicht jemand sagen, was ich da noch falsch mache?
Außerdem bräuchte ich noch Hilfe bei den Fragen 1 und 2.
Danke und greez,
jokey2
 

Neue Beiträge

Zurück