



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.curses程序的编译 In order to use the library, it is necessary to have certain types and variables defined. Therefore, theprogrammer must have a line: #include at the top of the program source. Compilations should have the following form: cc flags file . - -lcurses - -ltermcap2.curses的初始化与终结l 初始化与终结 语法: initscr( ); : endwin( );l 初始化后对终端特性的设置 cbreak( ) nocbreak ( ) 当 cbreak 模式被开启後, 除了 DELETE 或 CTRL 等仍被视为特殊控制字元外一切输入的字元将立 刻被一一读取.当处於 nocbreak 模式时, 从键盘输入的字元将被储存在 buffer 里直到输入RETURN或 NEWLINE.在较旧版的 curses 须呼叫 crmode(),nocrmode() 来取代 cbreak(),nocbreak() nl() nonl() 用来决定当输入资料时, 按下 RETURN 键是否被对应为 NEWLINE 字元 ( 如 n ).而输出资料时, NEWLINE 字元是否被对应为 RETURN 和 LINDFEED系统预设是开启的. echo() noecho() 此函式用来控制从键盘输入字元时是否将字元显示在终端机上.系统预设是开启的. intrflush(win,bf) 呼叫 intrflush 时须传入两个值: win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr ,bf 为 TRUE 或 FALSE 当 bf 为 true 时, 当输入中断字元 ( 如 break) 时, 中断的反应将较为快速.但可能会造成 萤幕的错乱. keypad(win,bf) 呼叫 keypad 时须传入两个值:win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr,bf 为 TRUE 或 FALSE 当开启 keypad 後, 可以使用键盘上的一些特殊字元, 如上下左右等方向键, curses 会将 这些特殊字元转换成 curses.h 内定义的一 些特殊键. 这些定义的特殊键通常以 KEY_ 开头. curses.h 为一些特殊键的定义如下: (更详细的详见头文件) KEY_UP 0403 KEY_DOWN 0402 KEY_LEFT 0404 KEY_RIGHT 0405 KEY_HOME 0406 Home key (upward+left arrow) KEY_BACKSPACE 0407 backspace (unreliable) KEY_F0 0410 Function keys. KEY_F(n) (KEY_F0+(n) Formula for f . KEY_NPAGE 0522 Next page KEY_PPAGE 0523 Previous page idlok( ) 使用键盘的insert和delete键删除和插入行 idcok( ) 使用键盘的insert和delete键删除和插入字符 信号中断 在initscr( )函数初始化后,对信号中断并没有屏蔽,所以对信号中断的处理尚需自己进行,以避免误操作按了CTRL_Delete键后中断程序. example void initial() initscr(); cbreak(); nonl(); noecho(); intrflush(stdscr,FALSE); keypad(stdscr,TRUE); refresh(); signal ( SIGINT, SIG_IGN ); 3.在curses中给用户提供的全局变量如下 typenamedescriptionWINDOW*curscrcurrent version of the screen (terminal screen).WINDOW*stdscrstandard screen. Most updates are usually done here.char *Def_termdefault terminal type if type cannot be determinedboolMy_termuse the terminal specification in Def - term as terminal, irrele-vant of real terminal typechar *ttytypefull name of the current LINESnumber of lines on the terminalintCOLSnumber of columns on the terminalintERRerror flag returned by routines on a OKflag returned by routines upon success.4.curses提供的库函数l 改变萤幕显示字元的属性 attron( )attroff( ) 打开(或关闭)字体的显示属性, 当使用 attron() 开启某一种特殊属性模式後, 接下来在萤幕的输出都会以该种属性出现. 直到您呼叫 attroff() 将此模式关闭. 请注意, 当您欲 attron() 开启另一种属性时, 请记得利用 attroff()先关闭原来的属性, 或直接以 attrset(A_NORMAL) 将所有特殊属性关闭.否则,curses 会将两种属性做重叠处理.常见属性如下 (其他属性详见帮助信息) A_UNDERLINE 加底线 A_REVERSE 反白 A_BLINK 闪烁 A_BOLD 高亮度 A_NORMAL 标准模式 (只能配合 attrset() 使用) attrset( ) 设置指定的属性,可用|语句来设置属性的组合,其中可设置为A_NORMAL恢复标准设置 standend( ) 关闭所有的属性设置,形同attrset( 0 ); standout( )打开高亮度属性,形同 attron(A_STANDOUT) l 窗口(WINDOW)操作 newwin( ) 用指定行和列生成一个新的窗口,当参数为0时, 采用缺省的行LINES和列COLS delwin( ) 删除newwin( )生成的窗口,对于每一个用newwin( )生成的窗口在退出curses时都必须删除 mvwin( ) 移动一个窗口的位置,使窗口的左上角在指定的位置 subwin( ) 在指定的窗口中生成一个新的子窗口,该窗口和原窗口共享内存,且该窗口只能在原窗口的范围空间 活动, 窗口的左上角指定的位置也是相对于原窗口来说的.因为新窗口跟原窗口共享内存,所以当新窗口 的内容发生变化时,在wrefresh( )原窗口前,必须调用touchwin( )来刷新原窗口. mvderwin( ) 在父窗口中移动子窗口. dupwin( ) 创建一个已经存在的窗口的副本l 刷新窗口 refresh( ) 把stdscr中的数据 显示在终端上,刷新终端显示屏 wrefresh( ) 把指定的窗口(WINDOW*)的信息显示在终端上, 刷新终端显示屏 touchwin( ) 父子窗口都有自己的WINDOW结构,其中通过结构中的WINDOW指针相关连起来(单链表结构).父窗口的WINDOW结构是与子窗口共享的,当子窗口改变时需要把改变的信息写到父窗口相应的位置上去,此时就必须调用touchwin( )函数子窗口中改变的信息写到父窗口的WINDOW结构中去.而子窗口 的数据却是独自使用,所以不存在此问题.touchwin( )把与父窗口相关连的子窗口中的信息刷新到父窗口 的WINDOW结构中去,实际上仅在WINDOW结构的某一变量置一个需要刷新的标志 touchline 把与父窗口相关连的子窗口中指定起始行及行数的信息刷新到父窗口的WINDOW结构中去 untouchwin 把父窗口中的刷新标志恢复为不需要刷新 wtouchln 强制把指定窗口的指定行及行数置为需要刷新标志 is_linetouched( ) 指定的行自上一次wrefresh( )以来被改动过,返回TRUE,否则返回FALSE is_wintouched( ) 指定的窗口自上一次wrefresh( )以来被改动过,返回TRUE,否则返回FALSEl 显示字符 addch( ) 在stdscr的当前光标位置显示一个字符 mvaddch( ) 移动到stdscr的指定位置显示一个字符 echochar( ) 在stdscr的当前光标位置显示一个字符,并refresh( )当前屏幕 addstr( ) 在stdscr的当前光标位置显示字符串 addnstr( ) 在stdscr的当前光标位置显示n个字符 mvaddstr( ) 移动到stdscr的指定位置显示字符串 mvaddnstr( ) 移动到stdscr的指定位置显示n个字符 printw( ) 类似printf在stdscr上的当前位置显示数据 insertln( ) 在当前光标位置上插入一行空行 insch( ) 在当前光标位置上插入一个字符 l 读数据 getch() 从键盘读取一个字元 (注意! 传回的是整数值) getstr() 从键盘读取一串字元 scanw( ) 类似scanf读取数据 inch( ) 从当前位置读一个字符和其属性l 光标控制及清除萤幕 move( ) 移动光标到指定位置 getyx( ) 得到当前光标位置 getparyx( ) 得到窗口左上角相对于父窗口的位置 getbegyx( ) 得到窗口左上角相对于屏幕坐标的位置 getmaxyx( ) 得到指定窗口的最大尺寸 erase( ) 拷贝空隔到窗口的每一个位置 clear( ) 拷贝空隔到窗口的每一个位置,完全清空窗口 clearok( ) 在下次调用wrefresh( )时清空屏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辽宁省中考语文试卷(含答案与解析)
- 2025年高考江苏物理试题+答案
- 香雪作业题目及答案
- 草坪学考试题及答案mooc
- 现代史题目及答案解析
- 葡萄培训知识文案简短课件
- 2025年艾灸知识考试试题及答案
- 萨摩耶宠物知识培训班课件
- 2025钢筋买卖合同范本
- 2024译林版八年级英语上册Unit 1 单元测试卷及答案(含三套题)
- DBJ-T13-483-2025 预拌流态固化土技术标准
- 2025-2030中国卤虫行业投资新趋势动向及发展战略分析报告
- 支持青少年身心健康的家庭指南 资讯、建议和资源 -促进中小学学生(K-12)家庭的心理健康意识和身心健康
- 2025年湖南省高职单招《英语》高频必练考试题库400题(含答案)
- 加气站气瓶充装质量保证体系手册2024版
- 2025至2031年中国卧式振动电机行业投资前景及策略咨询研究报告
- 消防工程深化设计管理体系及保障措施方案
- 中国卫星网络集团有限公司介绍
- 手术室常用药品管理
- 某物业公司各部门主管及员工绩效考核表
- 福建省南平市(2024年-2025年小学六年级语文)部编版期末考试(下学期)试卷及答案
评论
0/150
提交评论