我正在编写一个 c程序来做一些计算。如果我能够通过点击鼠标获得响应,那将对我有所帮助。
我怎么能这样做如果不可能那么只使用 C 的哪些功能或库我能够做到。
答案 0 :(得分: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");