2012-04-18 31 views
3

我有一個窗口(用newwin創建)和創建框(box (WINDOW *, int, int))。在ncurses框中滾動內容

我在箱子下面讀寫(在FD 0和1上),我從套接字中得到一個(char *),我在箱子裏寫了這個標籤。

當我寫了195行時,我到達盒子的盡頭。

我如何滾動現有文本,以便新的文本打印在底部?

+0

我編輯了你的問題,儘管我覺得我明白你的意思,但它仍然需要工作。您是否正在創建一個始終滾動的界面,如標準終端模擬器或irssi或類似的東西? – sarnold 2012-04-18 02:05:41

+0

>是的,就像irrs的一個客戶端界面irssi一樣。 而我很抱歉,在堆棧溢出方面是新的,我的英語是有史以來最糟糕的。 但你完全理解我! (我應該開始...) – user1340098 2012-04-18 02:08:34

回答

2

使用scrollok(WINDOW *win, bool bf);函數。

scrollok(win, TRUE); 

從手冊頁:

的scrollok選項控制當窗口的光標離開窗口或滾動區域的邊緣會發生什麼,無論是作爲一個換行符的 結果在底線行動,或輸入最後一行的最後一個字符。如果禁用,(bf爲FALSE),光標在最後一行左邊爲 。如果啓用(bf爲TRUE),則窗口向上滾動一行(請注意,要獲得終端的 上的物理滾動效果,還需要調用idlok)。


順便說一句,我一直在使用ncursespic),它是不完整的寫了一個非常簡單的界面,一個IRC客戶端在c,但你可能想偷看的提示 - code

+0

以及我會嘗試scrollok。 >(我沒有找到一個好的NCurse的參考,你有一個嗎?) 謝謝你的代碼,但不是很難,所以我不會使用它,但謝謝你! – user1340098 2012-04-18 13:14:13