鼠標移動事件,我不知道是否有這樣的事情在ncurses的鼠標移動事件,如果有一種方法來抓住他們。繼Interfacing with the mouse(從NCurses programming HOWTO)看來,通過啓用呼叫REPORT_MOUSE_POSITION
位爲mousemask
,一個確實可以捕獲鼠標移動事件。在NCURSES
所以,我試過了,它似乎並沒有工作。我有這樣的事情:
int ch, count=0;
mmask_t old;
initscr();
noecho();
cbreak();
mousemask (ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, &old);
keypad (stdscr, TRUE);
while ((ch = getchar()) != 'q')
{
count++;
if (ch == KEY_MOUSE)
{
MEVENT event;
assert (getmouse (&event) == OK);
mvprintw (0, 0, "Mouse Event!\n");
}
mvprintw (1, 1, "Event number %4d",count);
}
...
我預計,因爲我會移動我的鼠標光標,我會看到事件計數器增加。但事實並非如此。我也試着在鼠標按鈕1關閉的情況下移動它,以查看是否生成「拖動」事件,而且它也沒有做任何事情。問題是,如果這只是我的終端仿真器的問題?或者,也許我誤解了NCurses認爲的鼠標移動事件?所有其他鼠標事件都已收到(我可以在控制檯中使用鼠標操作程序)。
我試圖侏儒末端,xterm的,以及其他一些東西。我也嘗試了一個文本環境(沒有X),通過轉到我的Linux機器(Fedora 15,Ctrl + Alt + F2)的tty,並沒有奏效。
最後,假設我確實得到了這個權利,並且應該報告這些事件,那麼字段的MEVENT
對於鼠標移動evenet是什麼?
非常感謝提前!
我意外地在stackoverflow中輸入了getchar,我真正的代碼確實使用getch。當我在這裏輸入僞代碼時,我再次跳過了刷新:P無論如何,非常感謝 - 您對xterm的建議工作得非常好! –