2011-12-21 60 views
2

我正在编写一个c程序来做一些计算。如果我能够通过点击鼠标得到响应,它真的会帮助我。如何让终端编对鼠标点击作出反应

我怎样才能做到这一点也如果它是不可能再使用哪些功能或Ç库不仅会我能够做到这一点。

+1

我认为这属于StackOverflow,它不是Ubuntu特有的。 – Psirus 2011-12-21 10:49:28

回答

5

Ncurses has support for GPM (mouse library)

Ncurses interfacing with the mouse how-to摘录:

一旦一类鼠标事件已启用,则getch()类的函数返回KEY_MOUSE一些鼠标事件发生的每一次。然后,可以使用getmouse()检索鼠标事件。

代码大致是这样的:

MEVENT event; 

ch = getch(); 
if(ch == KEY_MOUSE) 
    if(getmouse(&event) == OK) 
     . /* Do some thing with the event */ 
     . 
     . 

getmouse()返回事件入给它的指针。这其中包含

typedef struct 
{ 
    short id;   /* ID to distinguish multiple devices */ 
    int x, y, z;  /* event coordinates */ 
    mmask_t bstate; /* button state bits */ 
}  

的bstate是主要的变量,我们感兴趣的是一个结构,它告诉鼠标按钮的状态。

然后用下面的代码片段,我们可以找出发生了什么。

if(event.bstate & BUTTON1_PRESSED) 
    printw("Left Button Pressed"); 
相关问题