在Linux环境下,已经用ncurses函数库替换curses函数库了,所有以下的函数都是ncurses.h文件中的函数。
#include<curses.h>
- 1. 初始化和重置函数
所有curses程序必须以initscr函数开始,以endwin函数结束。
WINDOW *initscr(void); //在一个程序中只调用一次,返回一个指向stdscr结构的指针,失败输出一条诊断信息并使程序结束。
int endwin(void); //成功返回OK,失败返回ERR。
- 2. 输出到屏幕
用于刷新屏幕的基本函数,字符类型chtype是比标准的char类型包含更多的二进制位。实际上是unsigned long类型的一个typedef类型定义。
int addch(const chtype char_to_add);
int addchstr(chtype *const string_to_add);
int printw(char *format,...);
int refresh(void);
int box(WINDOW *win_ptr,chtype vertical_char,chtype horizontal_char);
int insch(chtype char_to_insert);
int insertln(void);
int delch(void);
int deleteln(void);
int beep(void);
int flash(void);
- 3. 从屏幕读取
chtype inch(void); //返回光标当前位置的字符及其属性。
int instr(char *string);
int innstr(char *string,int number_of_characters);
- 4. 清除屏幕
int erase(void); //在屏幕位置写上空白字符
int clear(void);
int clrtobot(void); //清除当前光标所在行下面的所有行,包括当前光标所在行的光标位置右边直到行尾的内容
int clrtoeol(void); //清除当前光标所在行的光标位置右边直到行尾的内容。
- 5. 移动光标
int move(int new_y,int new_x);
int leaveok(WINDOW *window_ptr,bool leave_flag); //设置一个标志,用于控制在屏幕刷新后curses将物理光标放置的位置。
- 6. 字符属性
预定义的属性有:A_BLINK A_BOLD A_DIM A_REVERSE A_STANDOUT A_UNDERLINE
int attron(chtype attribute);
int attroff(chtype attribute);
int attrset(chtype attribute);
int standout(void);
int standend(void);
- 7. 键盘的工作模式
int echo(void);
int noecho(void);
int cbreak(void);
int nocbreak(void);
int raw(void);
int noraw(void);
- 8. 键盘输入
int getch(void);
int getstr(char *string)
int getnstr(char *string,int number_of_characters);
int scanw(char *format,...);
- 9. 窗口函数
WINDOW *newwin(int num_of_lines,int num_of_cols,int start_y,int start_x);
int delwin(WINDOW *window_to_delete);
- 10. 通用窗口函数
int addch(const chtype char);
int waddch(WINDOW *window_pointer,const chtype char);
int mvaddch(int y,int x,const chtype char);
int mvwaddch(WINDOW *window_pointer,int y,int x,const chtype char);
int printw(char *format,...);
int wprintw(WINDOW *window_pointer,char *format,...);
int mvprintw(int y,int x,char *format,...);
int mvwprintw(WINDOW *window_pointer,int y,int x,char *format,...);
- 11. 窗口移动和更新屏幕
int mvwin(WINDOW *window_to_move,int new_y,int new_x);
int wrefresh(WINDOW *window_ptr);
int wclear(WINDOW *window_ptr);
int werase(WINDOW *window_ptr);
int touchwin(WINDOW *window_ptr);
int scrollok(WINDOW *window_ptr,bool scroll_flag);
int scroll(WINDOW *window_ptr);
- 12. 窗口优化屏幕刷新
int wnoutrefresh(WINDOW *window_ptr);
int doupdate(void);
- 13. 子窗口
WINDOW *subwin(WINDOW *parent,int num_of_lines,int num_of_cols,int start_y,int start_x);
int delwin(WINDOW *window_to_delete);
- 14. keypad模式
int keypad(WINDOW *window_ptr,bool keypad_on);
- 15. 彩色显示
bool has_colors(void);
int start_color(void);
int init_pair(short pair_number,short foreground,short background);
int COLOR_PAIR(int pair_number);
int pair_content(short pair_number,short *foreground,short *background);
int init_color(short color_number,short red,short green,short blue);
- 16. pad
WINDOW *newpad(int number_of_lines,int number_of_columns);
int prefresh(WINDOW *pad_ptr,int pad_row,int pad_column,int screen_row_min,int screen_col_min,int screen_row_max,int screen_col_max);
2010-08-25 00:58:54