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 danke 🕶

    ClientToScreen weglassen, dann funzt es!

    und TPM_LEFTALIGN, dann ist das Menü an der gewohnten rechten Seite vom Curser! 😃


Anmelden zum Antworten