【问题标题】:Not able to get current cursor position in C++无法在 C++ 中获取当前光标位置
【发布时间】:2021-09-11 11:46:48
【问题描述】:

我正在使用ncurses 为我的 C++ 项目制作一个简单的 GUI。 我只是想在用户用鼠标单击时获取光标位置,但我总是得到相同的输出(0,0),这是代码:

#include <ncurses.h>
#include <iostream>

int main()
{
    int x, y;
    char c;

    initscr();
    clear();
    noecho();
    mousemask(ALL_MOUSE_EVENTS, NULL);

    while(1)
    {
        c = getch();
        if(c == BUTTON1_CLICKED)
        {
            getyx(stdscr, x, y);
            printw("POS(%d,%d)\n", x, y);
            refresh();
        }
    }
    return 0;
}

在我用鼠标在终端上单击之前,程序不会打印任何内容,但坐标始终相同(0,0),即使光标位置发生变化。 有人知道我该如何解决这个问题吗?

【问题讨论】:

  • ncurses 用于创建 TUI,而不是 GUI
  • 是的,对不起,我写得不好

标签: c++ user-interface ncurses


【解决方案1】:

这个

getyx(stdscr,x,y);

只返回您的程序设置的虚拟屏幕中的坐标。如果您想获得单击鼠标的坐标,则必须使用不同的函数(请参阅getmouse,仅当getch 返回KEY_MOUSE时才相关)。

【讨论】:

  • 非常感谢,刚刚在您的帮助下解决了这个问题,谢谢! :)
猜你喜欢
  • 2011-09-19
  • 1970-01-01
  • 2013-10-26
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
相关资源
最近更新 更多