terminal - 如何使终端程序对鼠标点击使用react

标签 terminal c

我正在编写一个c 程序来进行一些计算。如果我能够通过点击鼠标获得响应,那对我真的很有帮助。

我怎样才能做到这一点如果不可能,那么我只能使用 C 的哪些函数或库才能做到这一点。

最佳答案

<强> 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");

关于terminal - 如何使终端程序对鼠标点击使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590317/

相关文章:

xcode - 从 Xcode 中的存储库中删除未引用的图像

terminal - 更改 Visual Studio Code 的内置终端中显示的行数

c - 标量初始值设定项中的元素过多,我在 C 中不断遇到错误

c - C中的Web服务器问题

c++ - Mac 的代码块不会出现在终端中

macos - macOS 终端中的 nvim 在显示 termguicolors 时中断

colors - 无法根据 .screenrc 中终端的支持设置颜色

c - 数独多解C

c - 将指针传递给指向 C 结构的指针数组

c - 最少调用 rand() C