(gelöst) Kontextmenü weigert sich



  • Hallo ihr lieben!
    Ich habe ein Problem: undzwar möchte ich gerne bei einem Rechtsklick in meiner Anwendung ein Kontextmenü öffnen. Jedoch sträubt sich dieses dagegen -.-. Ich habe schon ewig gegooglet, und hier die Suche verwendet, jedoch nichts gefunden, was mir weiter Hilft 😞

    Ich habe diesen Code, der ausgeführt wird, sobald der User einen Rechtsklick macht.

    #define ID_KONTEXT1_GETSYSINFOS 303
    #define ID_KONTEXT1_SAVESCREEN	1002
    #define ID_KONTEXT1_SCREEN      302
    
        	POINT pt;
        	GetCursorPos(&pt);
        	hSubMenu = CreatePopupMenu();
        	AppendMenu(hSubMenu, MF_STRING, ID_KONTEXT1_SAVESCREEN, "Speichere Screenshot");
        	AppendMenu(hSubMenu, MF_STRING, ID_KONTEXT1_SCREEN, "aktualisiere Screenshot");
        	AppendMenu(hSubMenu, MF_STRING, ID_KONTEXT1_GETSYSINFOS, "aktualisiere Systeminfos");
        	AppendMenu(hMenu,MF_STRING | MF_POPUP, (UINT) hSubMenu, "TEST");
        	TrackPopupMenu(hMenu,999,pt.x,pt.y,0,hWnd,NULL);
        	PostMessage(hwnd,WM_NULL,0,0);
    

    Es passier jedoch einfach nichts(wenn ich eine MessageBox einbaue erscheint diese jedoch ganz normal -> aufgerufen wird also alles richtig) - wo genau ist der Fehler? Mit der Menüerstellung kenne ich mich leider noch nicht aus 😞 Habe die Grundstrucktur einfach hier aus dem Forum, und die Menüsache aus einem Tut für Menüs übernommen.

    Ich hoffe jemand von euch hat eine Idee für mich.
    Und vielen Dank jetzt schonmal!

    Edit:
    Oh. Mist *erröt*. ja kla: Win-API
    Wenn mich ein Admin verschieben könnte wäre das super nett



  • Verim schrieb:

    Ich habe ein Problem:

    Und zwar schon mit der Forenwahl. Ich tippe mal auf WinAPI, das hat ein eigenes Unterforum (Ansi C++ kennt keine Kontextmenüs, und wegen der UI-Vielfalt in C++ ist es auch sehr sinnvoll möglichst spezielle Unterforen zu wählen).



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hat wirklich Niemand eine Idee? 😞



  • ich glaube es gibt ne message die heißt WM_CONTEXTMENU hast du versucht deinen code mal da rein zu schreiben?



  • Von wo willst du den Rechtsklick aktivieren?
    Wenn der Focus sich z.B. in einem Editfeld befindet, kannst du mit subclassing die Nachricht WM_RBUTTONDOWN erfahren und dann alles weitere auslösen. Ich benutze diese Möglichkeit, um zu einzelnen Eingabefeldern weitere Erkärungen bereitzustellen.
    Teile mit, wo der Rechtsklick ausgelöst werden soll! 🙂



  • Ich weiß die Antwort kommt ein wenig spät - aber lieber spät als nie 😉
    Also: der Rechtsklick soll bei einem einfachen Fenster erfolgen. Das Problem ist jedoch nicht der Rechtsklick an sich, sondern das Kontextmenü zu erstellen -.-



  • Woher kommt die 999? (Und wieso benutzt Du da nicht die Konstanten, die in der msdn genannt werden?)
    Was sagt der Rückgabewert von TrackPopupMenu?



  • Ganz erlich? Ich habe keine Idee woher die 999 kommt. Aber wa ich weiß ist, dass genau darin der Fehler lag. 🙄
    Vielen Dank!!!
    Tut mir leid - hätte ich auch selbst drauf kommen können 😡


Anmelden zum Antworten