ermitteln der auswahl (des benutzers) eines popup-menüs



  • Hi

    Ich programmieren gerade mit MFC ein kleines Notizblock-programm.

    Das programm wird beim ins Tray minimiert. Wenn man auf das Tray-icon rechtsklickt, so öffnet sich ein popup menü. in diesem menü ist der eintrag "Löschen", in dem ich als untereinträge alle notizen habe.

    +-----------+
     | Neu       | +-----------+
     +-----------+ | Notiz 1   |
     | Löschen  >| +-----------+
     +-----------+ | Notiz 2   |
     | Beenden   | +-----------+
     +-----------+
    

    Anzeigen des menüs:

    selectionMade = popup->TrackPopupMenu ( TPM_LEFTALIGN, pp.x, pp.y, this );
    

    mein problem: wie finde ich heraus, auf welche notiz bei löschen der benutzer geklickt hat?

    danke im vorraus :xmas1:


  • Mod

    1. Bekommt Dein Fenster (this) eine WM_COMMAND Nachricht mit der entsprechenden ID
    2. TPM_RETURNCMD verwenden...



  • erstmal danke für die antwort.

    ok, der neue aufruf.

    selectionMade = popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RETURNCMD, pp.x,pp.y,this);
    

    mein problem ist jetzt aber das ich alle Notizen dynamisch ins menü eingefügt habe und wenn ich jetzt auf eine notiz klicke, so bekomme ich immer als return von TrackPopupMenu 0 zurück, da die eingefügten notizen ja keine id haben.


  • Mod

    Du musst Ihnen eben eine ID zuordnen!



  • ok.

    das erstellen eines menü-punkts.

    deleteItems->AppendMenu ( MF_STRING, 0, CString(data.cFileName) );
    

    könntest du mir bitte erklären wie man diesen punkt eine id zuordnet?

    danke im vorraus


  • Mod

    Deine IDE hat eine F1 Taste. Es gibt Google und eine ausgezeichnete Dokumentation im Netz 👎

    CMenu::AppendMenu, Parameter 2! Da wo Du 0 rein packst!
    http://msdn.microsoft.com/en-us/library/kb145b0a(VS.80).aspx


Anmelden zum Antworten