2011-12-21 15 views
2

プログラムを計算しています。マウスをクリックして応答を得ることができれば、本当に助けになります。ターミナルプログラムをマウスクリックに反応させる方法

それだけで私はそれを行うことができるだろう機能するかCのライブラリ使用して、その後できない場合はどのように私もこれを行うことができます。

+1

これはStackOverflowに属していると思いますが、それはUbuntu固有ではありません。 – Psirus

答えて

5

Ncurses has support for GPM (mouse library)Ncurses interfacing with the mouse how-toから

抜粋:

マウスイベントのクラスたら、いくつかのマウスイベントが起こるたびにKEY_MOUSEを返す、関数のgetchは()クラスを有効にしてきました。次に、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 */ 
}  

私たちが興味を持っている主な変数は、マウスのボタンの状態を示します。

次に、次のようなコードスニペットを使用して、何が起こったのかを知ることができます。

if(event.bstate & BUTTON1_PRESSED) 
    printw("Left Button Pressed"); 
関連する問題