我在一个位置打印文本: (10, 10)
.
-
等待输入,
-
清除屏幕,
-
再做一次 .
当我打印文本时,它将光标移动到行的末尾 . 如何获得X,Y位置并将其存储为变量?
我想这样做,所以我可以在文本周围画一个动画框 .
我知道有 getyx(window, y, x)
,但它有 void
返回 .
我试图使用它,但它不会改变 x
和 y
的值,它仍然会在 0, 0
打印 . 我无法理解如何使用此方法做任何事情 .
x = y = 0;
getyx(screen, y, x);
move(y, x);
printw("YX TEST"); // prints at 0,0 (bad)
我想做的事情如下:
yPos = getY(screen);
xPos = getX(screen);
然后我可以在哪里处理该信息的坐标?
提前感谢您的帮助 .
3 回答
您创建了第二个窗口,并在仍然绘制stdscr时使用了第二个窗口 . 我可以重现您的问题是:
如果你有两个窗口,并在一个窗口上绘制并从第二个获取光标位置,你将得到奇怪的结果 .
下列:
在
YX TEST ?
文本周围绘制一个框:如果你想拥有一个返回光标位置的函数,那就写下来......
你可以使用(legacy features)
getcury
和getcurx
由于您没有提供完整的示例,因此很难找到,出了什么问题 .
这是一个完整的最小工作示例:
输出在Hello,World之下!测试字符串并按预期显示
X: 23 Y: 12
.