2012-01-16 53 views
1

您好,有一個愉快的一天..與pdCurses滾動回到歷史

所以我寫了這個簡單的應用程序與滾動向上或向下,當你按下page-downpage-up按鈕詛咒。

#include <curses.h> 
#include <stdio.h> 
#include <Windows.h> 

int main(void) 
{ 
    int ch; 

    initscr(); 
    cbreak(); 
    keypad(stdscr,TRUE); 
    idlok(stdscr,TRUE); 
    scrollok(stdscr,TRUE); 

    printw("Welcome!"); 
    refresh(); 


    ch = getch(); 
    while(ch != 'q'){ 
     if(ch == KEY_PPAGE){ 
      scrl(-1); 
      refresh(); 
     } 
     else 
     { 
      scrl(1); 
      refresh(); 
     } 
     ch = getch(); 
    } 

    endwin(); 
    return 0; 

} 

問題是,如果世界的「歡迎」不在窗口,那麼你不能拿回相反的按鈕。我認爲這樣的事情會通過增加窗口的緩衝區來解決。但是不知道怎麼這樣的事情會做,如果它的良好的工作要做。

是否有任何想法/提示,以幫助我解決這個問題?

回答

1

我在python中使用curses,我解決這個問題的方法是將一個類似於列表的數據結構附加到保存所有要記住的行的窗口,以及表示第一個可見行的索引。從那裏,你可以找出哪些線路應該是可見的,並在必要時重新計算。使用Unicurses在python

一種這樣的實現可以發現here。這不是在C,但我希望它有幫助。