寒假学习 第11天 (linux 高级编程) 笔记 总结
CUI字符界面,GUI:图形界面curses就是cui的库老版本libcurses.so,新版本libncurses.so
初始化终端initscr操作终端(输入/输出/定位/刷新....)释放终端endwin
列子见下面
border 主窗口 int border(chtype ls, chtype rs, chtype ts, chtype bs,chtype tl, chtype tr, chtype bl, chtype br);
box 窗口 int box(WINDOW *win, chtype verch, chtype horch);
hline 行 int hline(chtype ch, int n);
vline 列 int vline(chtype ch, int n);
属性字符字节(chtype)=属性字节+字符字节
注意:
box需要窗体.
nitscr返回被初始化的窗体:标准屏幕WINDOW*
实际上curses定义一个全局变量stdscr就是标准屏幕
函数命名规则:
**** 标准屏幕stdscr
w**** 指定窗体
mv**** 指定位置
mvw**** 指定窗体的指定位置
#include <curses.h> int main(int argc, const char *argv[]) { WINDOW *w=initscr(); //返回WINDOW ×类型 //border('a','b','c','d','e','f','g','h'); border(0,0,0,0,0,0,0,0);//0就表示用默认的字符 8个形参分别是 左 右 上 下 边界 左上 右上 左下 右下 点 //box(w,'a','b'); box(stdscr,'a','b'); mvhline(3,10,0,20); mvvline(3,10,0,30); refresh(); //刷新页面 getch(); //防止界面退掉 endwin(); return 0; }
刷屏
void refresh()
void wrefresh(WINDOW*); //指定刷新的窗口
注意
刷屏要从里到外刷屏
同样也有mvaddch mvwaddch 等
普通字符:' A'
属性字符:' '|属性 例如: 'A'|A_BOLD|A_UNDERLINE 表示加上下划线跟粗体的A
特殊的属性字符:比如ACS_PI (π)
man attron 可以找到 属性字节
man addch 还可以找到特殊字节(如pi、箭头等)
例子:#include <curses.h> int main() { initscr(); box(stdscr,0,0); mvaddch(2,10,'A'|A_BOLD|A_UNDERLINE); mvaddch(5,10,ACS_PI); getch(); endwin(); return 0; }