Ich mache eine Konsolenanwendung für Unix-Plattformen und benutze die Bibliothek curses (oder ncurses), um Tastatur- und Mauseingaben zu handhaben. Das Problem ist, dass ich sehr wenig Dokumentation darüber gefunden habe, wie man es genau dafür verwendet, und zwar von dieser Seite und dieses , die keine sehr detaillierten Beispiele haben. Es ist mir gelungen, den linken Klick zu erfassen, aber ich kann ihn nicht für den Rechtsklick verwenden, da das Optionsmenü für den Terminalemulator an der Cursorposition angezeigt wird, das Ereignis jedoch von der Anwendung nicht verarbeitet wird. Wie kann ich dies vermeiden und das Ereignis in der Anwendung erfassen lassen?
Ich habe die folgende Zeile für die Konfiguration von Mausereignissen:
%Vor%Und in der Methode, die die Eingabe verarbeitet, habe ich folgendes:
%Vor% Ich habe auch versucht, mousemask()
mit der ALL_MOUSE_EVENTS
-Maske zu konfigurieren, aber es werden immer noch keine Ereignisse in der letzten else
-Klausel gedruckt, daher denke ich, dass das Ereignis einfach nicht ausgelöst wird.
Jede Hilfe dazu wäre sehr willkommen.
Für alle anderen, die hierher kommen, um herauszufinden, warum sie überhaupt keine Mausereignisse mit Ncurses erfassen können, ist dies wahrscheinlich die Zeile, die Sie brauchen:
%Vor% Ohne dies habe ich keine Mausereignisse mit getch()
erhalten.
Es fehlt in allen Tutorials / Beispielen, die ich gesehen habe, deshalb brauchte ich viel Zeit, um herauszufinden, was mit meinem Code nicht stimmt - vielleicht hilft diese Antwort anderen, die Lösung schneller zu finden als ich.
Ich habe Ihren Code benutzt, aber ich kann keine Reaktion bekommen. Nicht einmal die linke Maustaste funktioniert.
Ist das der vollständige Code?
%Vor%Tags und Links c++ mouseevent ncurses unix curses