2016-04-28 10 views
1

Ich versuche, einen nach oben und unten in einem Fluch Programm zu implementieren, in dem Moment, wo ich gerade bin versucht, das Ereignis zu fangen und zeigen, es ist Nummer:C Flüche nicht fangen Mausereignis

MEVENT event; 
mousemask(ALL_MOUSE_EVENTS, NULL); 

while (ch != 126) 
{ 
    ch=wgetch (current->child); 
    switch(ch) 
    { 
    case KEY_MOUSE: 
     if(getmouse(&event) == OK) 
      wprintw (current->child, "\nmouse event: %d\n", event.bstate); 
     break; 
    default: 
      wprintw (current->child, "key: %d\n", ch); 
    } 
    wrefresh (current->child); 
} 

has_mouse() gibt 1 zurück, aber die Ereignisse werden nicht eingefangen, kein Klicken, kein Mausrad ...

Auch ich verwende ncurses 6.0.4, also sollte Mausrad unterstützt werden.

+0

Sind Sie auf OSX? – LPs

+1

Nein, Linux. Ich habe gerade herausgefunden, dass ich einen Post gefunden habe, nachdem ich nach einer anderen Zeit gesucht habe! Es muss 'keypad' auf' true' gesetzt sein. Jetzt funktioniert es. Es fehlt noch eine Sache, ich kann die Maus mit 'BUTTON4_PRESSED' nach oben scrollen, aber das Scrollen nach unten wird in keinem Button-Event festgehalten (ich probiere alle in einem großen' if'/'else if'). –

Antwort

0

Fehlende Fähigkeit, Wheel-Mouse-Sounds wie eine ncurses5-Anwendung zu erfassen. Die Funktion funktioniert in xterm (und Programmen, die xterm-artige Maussteuerungen implementieren). In der Frage gibt es nicht genügend Informationen, um zu erraten, welche Art von Problem Sie daran hindert, die Mausereignisse zu sehen.

Es gibt keine "ncurses 6.0.4". Ncurses-Versionen haben ein Major-, Minor- und Patch-Datum. Im Moment ist die neueste Entwicklungsversion 6.0.20160423