Kontextmenü das alte Spiel



  • Also ich bin jetzt langsam echt am ausrasten.

    Ich habe in meiner Anwendung 2 Menüs, das zweite heist "IDR_TABLEMENU".
    Das soll beim rechtsklick auf ein CListCtrl aufgehen.
    Und ja ich hab es unter Menüs auch als PopUp makiert...

    so nun versuch ich es zu laden:

    void CSoftwareView::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    	CMenu Damm;
    	Damm.LoadMenu(IDR_TABLEMENU);
    	Damm.TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
    }
    

    Es kommt tatsächlich eine Box links an meinem Cursor ausgerichtet, alerdings ist diese etwa 10 pixel Breit und 50-60 Pixel hoch, und völlig Leer und weis(ja weis, die Farbe O_o) 😮 😕

    Bei meiner Anwendung handelt es sich um eine SDi Anwendung.
    Und das Kontextmenü soll auf einem Document erscheinen, sieht man ja an der class CSoftwareView...

    Vielen Dank un bitte helft mir es ist mir nicht klar, eigentlich müsste es so gehn und es ging auch immer so, aber hier will es net

    HHHHHHHHHIIIIIIIIIIIILLLLLLLLLLFFFFFFFFFEEEEEEEE



  • hat denn keiner eine Idee? hab schon das komplette Archive durchforscht aber find keine Problemlösung



  • Ich hab hier was in einem Beispielprgramm gefunden.

    CMenu menu;
            menu.LoadMenu (IDR_CONTEXTMENU);
            CMenu* pContextMenu = menu.GetSubMenu (0);
    /* Brauchst du nicht, nur der Vollständigkeit halber:
            for (int i=0; i<5; i++)
                pContextMenu->ModifyMenu (ID_COLOR_RED + i,
                    MF_BYCOMMAND | MF_OWNERDRAW, ID_COLOR_RED + i);
    */
            pContextMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_LEFTBUTTON |
                TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd ());
    

    Du hast den Teil mit GetSubMenü nicht, liegt es daran?



  • ne Funktioniert leider auch nicht, kommt ne Fehlermeldung "Unbehandelte Ausnahme"

    So scheiss hab jetzt schon alles probiert, wenn ich es schaffe dass er net abschmiert, dann krieg ich nur mein kleines weisen rechteck zu sehen aber kein menu

    😞



  • Hallo,

    das müßte aber so gehen, wie estartu_de geschrieben hat. Wahrscheinlich hast du einen Fehler beim Erstellen des Menüs gemacht, ich kopiere dir mal die Anleitung heraus, und dann verwendest du noch einmal estartu_de's Code:

    MSDN schrieb:

    So erstellen Sie ein Kontextmenü

    Erstellen Sie eine Menüleiste mit leerem Titel.

    Geben Sie einen vorläufigen Buchstaben in die Beschriftung ein, oder wählen Sie ein Attribut zur späteren Umkehrung. Dadurch wird die Erstellung des Menüs aktiviert.

    Bewegen Sie sich zum ersten Befehl im Menü. Öffnen Sie die Eigenschaftenseite, und geben Sie die Beschriftung und beliebige andere Informationen ein.
    Wiederholen Sie diesen Vorgang für alle anderen Menübefehle im Kontextmenü.

    Leeren Sie die oberste Menüleiste erneut, indem Sie den vorläufigen Buchstaben in der Beschriftung löschen, oder indem Sie das temporäre Attribut zurücksetzen.
    Ziel ist es, ein Kontextmenü zu besitzen, das unter einer leeren Menüleiste folgt.

    Speichern Sie die Menüressource.

    MfG


Anmelden zum Antworten