初识curses (简单常用的函数简介)

来源:互联网 发布:淘宝商城怎么开 编辑:程序博客网 时间:2024/05/21 05:17

如果可以尽量看 《unix/linux下curses开发指南》这本书,更详细。

initscr()     初始化为curses 模式,用来清除屏幕上所有的字符 endwin() 退出curses 模式
refresh()  告诉curses系统将缓冲区的内容输出到屏幕上。
move (int new_y, int new_x) 把逻辑光标的位置移动到指定的地点(行、列)

addch()、addstr()系列:将字符(串)打印到屏幕上,可以附加加字符修饰参数的一类函数。
addch (const chtype char_to_add)         在光标的当前位置添加给定的字符
addstr (chtype * const string_to_add)     在光标的当前位置添加给定的字符串
mvaddch(int y,int x,chtype ch)         用于将光标移动到指定位置输出字符
waddch(WINDOW*,chtype ch)      将字符输出到指定窗口的当前坐标处
mvwaddch(WINDOW*,int, int,chtype)          将字符输出到指定窗口的指定坐标处
mvaddstr()           用于将光标移动到指定位置输出字符串
waddstr()         将字符串输出到指定窗口的当前坐标处

printw()系列:和printf()一样的具有格式化输出的一类函数。
printw(char *format,…);       和printf()类似,在光标当前位置格式化输出
mvprintw(int y,int x,char *format,…);      将光标移动到指定位置,然后格式化输出内容 wprintw(WINDOW*,char *format,…)       在指定窗口的当前坐标处,格式化输出内容
mvwprintw(WINDOW*,int y, int x,char *format,…)   在指定窗口的指定坐标处,格式化输出内容
 
  插入删除系列函数
insch(chtype char_to_insert)       在当前光标处插入字符,把现有字符后移
insertln(void)         插入一个空行,把现有的行依次往下移一行
delch(void)         删除位于当前光标处的字符
deleteln(void)         删除当前光标所指的行
beep()         使机器发出蜂鸣声
flash()    使屏幕产生闪烁 清除屏幕函数
erase(void)    在每个屏幕空白位置写上空白符 
clear(void)        清除整个屏幕,要配合refresh()使用
clrtobot(void)        清除从光标当前位置到屏幕右下角的所有内容
clrtoeol(void)       从光标当前位置删除到这一行的结尾

scanw()系列函数     scanw() 和标准io的scanf()类似,用来获取用户的输入
mvscanw()       将光标移动到指定位置,并获取用户输入
wscanw()       在指定窗口的当前坐标处,获取用户输入
mvwscanw()     在指定窗口的指定坐标处,获取用户输入 窗口机制

WINDOW *newwin(int lines,int cols, int strat_y,int start_x) 创建一个新窗口,窗口从屏幕位置(start_y,start_x)开始,尺寸由分别代表行数和列数的lines和cols参数指定
Int delwin (WINDOW *window_to_delete); 删除一个通过newwin函数创建的 窗口
int box(WINDOW *win,chtype verch,chtype horch)     在已定义的窗口外围画上边框

border(chtype ls,chtype rs,chtype ts, chtype bs,chtype tl,chtype tr,chtype bl, chtype br) 根据ls(左边框字元),rs(右边框字元),ts(上边框字元),bs(底部字元),tl(左上角),tr(右上角),bl(左下角),br(右下角)
wborder(WINDOW*,….)     参数多了一个指定的窗口,其他同上 画线函数

hline(chtype ch,int  n)    当前光标处用n个ch字元画出一条水平线
whline(WINDOW*,chtype,int)      指定窗口的当前坐标处,画出一条水平线
vline(chtype ch , int n)       当前光标处用n个ch字元画出一条垂直线
wvline(WINDOW*,chtype,int)         指定窗口的当前坐标处,用n个ch字元画出一条垂直线
mvhline(int y, int x, chtype ch,int n)     在(y,x)光标处用n个ch字元画出一条水平线
mvwhline(WINDOW*,int y, int x,chtype ch, int n) 在指定窗口(y,x)光标处用n个ch字元画出一条水平线
mvvline(int y, int x, chtype ch, int n)        当(y,x)光标处用n个ch字元画出一条垂直线
mvwvline(WINDOW*, int y, int x,chtype ch, int n)   在指定窗口(y,x)光标处用n个ch字元画出一条垂直线

刷新窗口
wrefresh(WINDOW *)    刷新指定窗口,同refresh()
  wclear(WINDOW *)    清除指定窗口的内容
werase(WINDOW*)     同 wclear()
touchwin(WINDOW *)      告诉curses,指定win发生变化,下次刷新时要刷新该窗口 scrollok(WINDOW*, bool)   控制窗口的卷屏情况
scroll(WINDOW*)    同上

int keypad (WINDOW *win_ptr,bool keypad_on)
激活keypad模式,开启转义序列与逻辑按键之间的转换功能 ctype.h中的字符函数
1 0
原创粉丝点击