2011-12-21 61 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"); 
相關問題