📄 00000001.htm
字号:
int ch; <BR> char string1[80]; /* 请注意! 不可宣告为 char *string1; */ <BR> char string2[80]; <BR> <BR> echo(); /* 开启 echo 模式, 使输入立刻显示在萤幕上 */ <BR> ch=getch(); <BR> string1=getstr(); <BR> scanw("%s",string2); <BR> mvprintw(10,10,"String1=%s",string1); <BR> mvprintw(11,10,"String2=%s",string2); <BR> <BR> ■ 如何利用方向键 <BR> <BR> curses 将一些如方向键等特殊控制字元, 以 KEY_ 为开头定义在 curses.h <BR> 这个档案里头, 如 KEY_UP 即代表方向键的 " ↑ ". 但, 如果您想使用 <BR> curses.h 所为您定义的这些特殊键的话, 您就必须将 keypad 设定为 <BR> TRUE. 否则, 您就必须自己为所有的特殊键定义了. <BR> <BR> curses.h 为一些特殊键的定义如下: <BR> <BR> KEY_UP 0403 ↑ <BR> KEY_DOWN 0402 ↓ <BR> KEY_LEFT 0404 ← <BR> KEY_RIGHT 0405 → <BR> KEY_HOME 0406 Home key (upward+left arrow) <BR> KEY_BACKSPACE 0407 backspace (unreliable) <BR> KEY_F0 0410 Function keys. <BR> KEY_F(n) (KEY_F0+(n)) Formula for f . <BR> KEY_NPAGE 0522 Next page <BR> KEY_PPAGE 0523 Previous page <BR> <BR> 以上仅列出笔者较常使用的一些控制键, 至於其他控制键的定义, 请自行参 <BR> 阅 man curses (* 注三) <BR> <BR> 一并为您列出其他常用的一些特殊字元 <BR> <BR> [TAB] /t <BR> [ENTER] /r <BR> [ESC] 27 <BR> [BACKSPACE] 127 <BR> <BR> <BR> ■ 如何改变萤幕显示字元的属性 <BR> <BR> 为了使输出的萤幕画面更为生动美丽, 我们常须要在萤幕上做一些如反白, <BR> 闪烁等变化. curses 定义了一些特殊的属性, 透过这些定义, 我们也可以 <BR> 在 curses 程式□控制萤幕的输出变化. <BR> <BR> attron(mod) 开启属性 <BR> attroff(mod) 关闭属性 <BR> <BR> curses.h 里头定义了一些属性, 如: <BR> <BR> A_UNDERLINE 加底线 <BR> A_REVERSE 反白 <BR> A_BLINK 闪烁 <BR> A_BOLD 高亮度 <BR> A_NORMAL 标准模式 (只能配合 attrset() 使用) <BR> <BR> <BR> 当使用 attron() 开启某一种特殊属性模式後, 接下来在萤幕的输出都会以 <BR> 该种属性出现. 直到您呼叫 attroff() 将此模式关闭. <BR> <BR> 请注意, 当您欲 attron() 开启另一种属性时, 请记得利用 attroff()先关 <BR> 闭原来的属性, 或直接以 attrset(A_NORMAL) 将所有特殊属性关闭.否则, <BR> curses 会将两种属性做重叠处理. <BR> <BR> □例: <BR> <BR> attrset(A_NORMAL); /* 先将属性设定为正常模式 */ <BR> attron(A_UNDERLINE); /* 加底线 */ <BR> mvaddstr(9,10,"加底线"); /* 加底线输出一串字元 */ <BR> attroff(A_UNDERLINE); /* 关闭加底线模式, 恢复正常模式 */ <BR> attron(A_REVERSE); /* 开启反白模式 */ <BR> mvaddstr(10,10,"反白"); /* 输出一串反白字元 */ <BR> attroff(A_REVERSE); /* 关闭反白模式, 恢复正常模式 */ <BR> attron(A_BLINK); /* 开启闪烁模式 */ <BR> mvaddstr(11,10,"闪烁"); /* 输出一串闪烁字元 */ <BR> attroff(A_BLINK); /* 关闭闪烁模式, 恢复正常模式 */ <BR> attron(A_BOLD); /* 开启高亮度模式 */ <BR> mvaddstr(12,10,"高亮度"); /* 输出一串高亮度字元 */ <BR> attroff(A_BOLD); /* 关闭高亮度模式, 恢复正常模式 */ <BR> <BR> <BR> ■ 其他常用的一些函式 <BR> <BR> beep() 发出一声哔声 <BR> box(win,ch1,ch2) 自动画方框 ch1: 画方框时垂直方向所用字元 <BR> ch2: 画方框时水平方向所用字元 <BR> <BR> example: box(stdscr,'|','-'); <BR> 将以 | 及 - 围成一个方框 <BR> <BR> ■ 应用完整□例 <BR> <BR> 下面所举的例子, 即完全利用刚刚所介绍的含式来完成.这个程式可将从键 <BR> 盘上读取的字元显示在萤幕上, 并且可以上下左右方向键来控制游标的位置 <BR> , 当按下 [ESC] 後, 程式即结束. <BR> <BR> 您有没有发现, 这不就是一个简单全萤幕编辑器的雏形吗? <BR> <BR> <BR> #include <curses.h> /* 引进 curses.h , 并自动引进 stdio.h */ <BR> <BR> <BR> #define StartX 1 /* 决定游标初始位置 */ <BR> #define StartY 1 <BR> <BR> void initial(); <BR> <BR> main() <BR> { <BR> int x=StartX; /* 宣告 x,y 并设定其初值 */ <BR> <BR> int y=StartY; <BR> int ch; /* 宣告 ch 为整数,配合 getch() 使用 */ <BR> <BR> <BR> initial(); /* 呼叫 initial(), 启动 curses 模式, */ <BR> <BR> /* 并完成其它设定 */ <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -