2011-12-06 51 views
4

我最近已经介绍到ncurses异步键盘键监听,并与它相处得很好。我面临的一个问题是,您只能在可见屏幕上显示文本,无滚动条。我想知道它是否可以继续使用ncurses,因为它非常可爱,但该程序仍然保持滚动条而不是到达最后一行并留在那里。使用比窗口更多的线条与ncurses

+1

我假定你的意思是,通过扩展比窗口更高的curses显示,使GUI终端程序应用自己的滚动条? (不是,在curses环境中添加滚动条?) 现在没有机会进行实验,但是不能仅仅调整'extern int LINES'到你想要的大小......? (当然,这可能会破坏您在物理终端上的程序,例如Linux文本控制台) – BRFennPocock

+0

@BRPocock不,这个想法并不是在curses环境中添加一个元素,而是让程序移动到一个新行(超出终端窗口的范围,迫使滚动条出现 – topherg

回答

11

scroll()。你必须先设置scrollok(win,TRUE)。实际上,如果你只是想像普通终端那样发送数据,你只需要自己设置scrollok()

#include <ncurses.h> 

int main(void) 
{ 
    int i = 0; 

    initscr(); 

    scrollok(stdscr,TRUE); 

    while(1) 
    { 
     printw("%d - lots and lots of lines flowing down the terminal\n", i); 
     ++i; 
     refresh(); 
    } 

    endwin(); 
    return 0; 
}