ncurses滚动窗口的文本内容

3
我正在寻找关于使用ncurses中窗口或pad的滚动方法的明确答案。
我想展示一个stdout流,它会快速填充屏幕上可用行数,并开始溢出。使用stdio,终端只是滚动内容。但是据我了解,使用ncurses时,输出仅限于屏幕区域。这完全准确吗?
通常的做法是将整个stdout内容放入缓冲区,然后将缓冲区的特定部分读入ncurses窗口或pad中。还有哪些使用ncurses滚动文本的方法?
2个回答

2
您可能忽略了scrollok

scrollok选项控制窗口光标移动到窗口或滚动区域边缘时发生的情况,无论是因为在底部行上执行换行操作还是键入最后一行的最后一个字符。如果禁用(bf为FALSE),则光标停留在底部行。如果启用(bf为TRUE),则窗口向上滚动一行(请注意,在终端上获得物理滚动效果,还需要调用idlok)。

使用它,您可以写入任何窗口,并使其向上滚动-就像stdio一样。
更多阅读:

0

使用 scrollok 如下:

scrollok(win, TRUE);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接