Frage zu Kontextmenü
-
Hi,
Ich mache grad so einen Kurs, bei dem man ein Kontextmenü erstellt, allerdings klappt da nicht alles. Habe den Kurs jetzt schon das zweite mal gemacht und klappt immer noch net.Das Kontextmenü geht, allerdings ist es nicht neben der Maus, sondern immer in einem bestimmten Abstand von der Maus empfernt!
void CMenus2Dlg::OnContextMenu(CWnd* pWnd, CPoint point) { //Lokale Variable deklarieren CMenu *m_lMenu; //Zeiger auf Menü CPoint m_pPoint; //Kopie der Mausposition //Mausposition in lokale Variable umwandeln m_pPoint = point; //Position in Bildschirmkoordinaten konvertieren ClientToScreen(&m_pPoint); //Zeiger auf Fenstermenü holen m_lMenu = GetMenu(); //Zeiger auf erstes Untermenü holen m_lMenu = m_lMenu->GetSubMenu(0); //Popup-Menü anzeigen m_lMenu->TrackPopupMenu(TPM_CENTERALIGN + TPM_LEFTBUTTON, m_pPoint.x, m_pPoint.y, this, NULL); }
Was muß ich ändern, damit das Menü direkt neben der Maus erscheint, wie man es gewohnt ist?
-
hi,
du hast 'TPM_CENTERALIGN' geschrieben. das bedeutet, dass die mitte des menüs bei dem mauszeiger ist. probier mal 'TPM_RIGHTALIGN', dann müsste das menü eigentlich so sein, wie immer. oder lass es einfach ganz weg
cu
Dommel
-
Ne hat leider alles net geklappt...
-
Habs Prob selber gefunden!
Trotzdem dankeClientToScreen weglassen, dann funzt es!
und TPM_LEFTALIGN, dann ist das Menü an der gewohnten rechten Seite vom Curser!