Bonjour,

J'apprends encore à gérer la souris sous ncurses, me basant sur des exemples, j'ai écris le code ci-dessous.

Hélas, pour une raison qui m'est inconnue, le résultat est sans appel sous Cygwin :
Mouse Supported
mais
Mous mask failed et no mask returned !

Si un développeur pouvez tester le code sur un unix natif, car je ne suis pas sûr que le problème soit uniquement dans le code.

j'ai mal configuré cygwin, may be :

Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#include <curses.h>
#ifdef NCURSES_MOUSE_VERSION
#define Mouse "Mouse supported"
#else
#define Mouse "Mouse not supported"
#endif
#include <signal.h>
 
int main() {
  int c,line=0,result = 0;
  int mx,my;
 
    (void) initscr();      // initialize the curses library 
    keypad(stdscr, TRUE);  // enable keyboard mapping 
    (void)immedok(stdscr,TRUE);
    (void)scrollok(stdscr,TRUE);
 
  mvaddstr(line++,0,Mouse);
 
   mmask_t Mask; 	
   getmaxyx(stdscr,my,mx);
   if (!mousemask(ALL_MOUSE_EVENTS, &Mask)) {
      mvaddstr(line++,0,"Mouse mask failed");
      if (Mask != NULL)
      	mvaddstr(line++,0,"Mouse mask returned");
      else 
        mvaddstr(line++,0,"No mouse mask returned");
   }
 
   do {
   	mvaddstr(line++,5,"Waiting mouse events");
   	c = wgetch(stdscr);
   	if ( c == KEY_MOUSE)
   	    mvaddstr(mx-1,my-1,"Mouse event detected");
   	else 
   	    mvaddstr(line++,5,"No event");
   } while (c != 'q');
  return 0;
}
Ps : le code compile, ily a seulement un warning, qui n'est pas vital.