控制视频属性
程序可控制许多视频属性。
视频属性、位掩码和缺省颜色
- A_ALTCHARSET
- 备用字符集。
- A_BLINK
- 闪烁。
- A_BOLD
- 超高亮度或粗体。
- A_DIM
- 半亮。
- A_NORMAL
- 一般属性。
- A_REVERSE
- 反转视频。
- A_STANDOUT
- 终端最佳突出显示方式
- A_UNDERLINE
- 下划线。
- COLOR_PAIR (Number)
- 显示 Number 代表的颜色对。 必须已经使用 init_pair 子例程初始化了该颜色对。
这些属性在 curses.h 文件中定义。 可将属性传递给 wattron、wattroff 和 wattrset 子例程,或可使用传递给 waddch 子例程的字符对它们执行 OR 操作。 C 逻辑 OR 运算符是|(管道符号)。 还提供了以下位掩码:
- A_ATTRIBUTES
- 抽取属性
- A_CHARTEXT
- 抽取字符
- A_COLOR
- 抽取颜色对字段信息
- A_NORMAL
- 关闭所有视频属性
提供了以下宏处理颜色对:COLOR_PAIR( Number) 和 PAIR_NUMBER( Attribute)。 COLOR_PAIR( Number) 宏和 A_COLOR 掩码为 PAIR_NUMBER( Attribute) 宏所用,以抽取在 Attribute 参数指定的属性中找到的颜色对号。
如果程序使用颜色,那么 curses.h 文件定义许多标识以下缺省颜色的宏:
| 颜色 | 整数值 |
|---|---|
| 颜色_黑色 | 0 |
| 颜色 (COLOR_BLUE) | 1 |
| 颜色_绿色 | 2 |
| 颜色_青色 | 3 |
| 颜色 | 4 |
| 颜色_MAGENTA | 5 |
| COLOR_黄色 | 6 |
| 颜色_白色 | 7 |
curses 假定所有终端的缺省背景色均为 0 (COLOR_BLACK)。
设置视频属性
当前窗口属性将应用于使用 addch 子例程写入窗口的所有字符。 这些属性保留为字符属性。 字符在终端操作期间保留这些属性。
- attroff 或 wattroff
- 关闭属性
- attron 或 wattron
- 打开属性
- attrset 或 wattrset
- 设置窗口的当前属性
- standout , wstandout , standend 或 wstandend
- 将窗口置于终端最佳突出显示方式,以及使窗口脱离终端最佳突出显示方式
- vidput 或 vidattr
- 输出将终端置于视频属性方式的字符串
attrset 子例程设置缺省屏幕的当前属性。 wattrset 子例程设置用户定义的窗口的当前属性。
使用 attron 和 attroff 子例程来打开和关闭 stdscr 中的指定属性,而不影响任何其他属性。 wattron 和 wattroff 子例程在用户定义的窗口中执行相同的操作。
standout 子例程与对具有 A_STANDOUT 属性的 attron 子例程的调用相同。 它将 stdscr 置于终端最佳突出显示方式。 wstandout 子例程与对 wattron ( Window, A_STANDOUT) 子例程的调用相同。 它将用户定义的窗口置于终端最佳突出显示方式。 standend 子例程与对 attrset (0) 子例程的调用相同。 它关闭了 stdscr 的所有属性。 wstandend 子例程与对 wattrset ( Window, 0) 子例程的调用相同。 它关闭了指定窗口的所有属性。
vidput 子例程输出将终端置于指定属性方式的字符串。 字符是通过 putc 子例程输出的。 维达特尔 子例程与 Vidput 子例程相同,但字符是通过 普查尔 子例程输出的。
处理颜色对
init_pair(1, COLOR_BLACK, COLOR_CYAN);wattrset(win, COLOR_PAIR(1));如果您随后编写字符串Let's add Color对于终端,该字符串在青色背景上显示为黑色字符。
抽取属性
win = newwin(10, 10, 0, 0);
init_pair(1, COLOR_RED, COLOR_YELLOW);
wattrset(win, COLOR_PAIR(1));
waddstr(win, "apple");
number = PAIR_NUMBER((mvwinch(win, 0, 0) & A_ATTRIBUTES));
wprintw(win, "%d\n", number);
wrefresh(win);指示灯和耳语
curses 库提供以下警报子例程提示用户:
设置 curses 选项
- curs_set
- 将光标可视性设为不可视、正常或可视性很好。
- idlok
- 指定 curses 是否可以使用如此配置的终端的硬件插入和删除行功能。
- 内冲
- 指定中断键(中断、退出或暂挂)是否在 tty 驱动程序中对齐所有输出。 此选项的缺省值是从 tty 驱动程序处继承的。
- 小键盘
- 指定 curses 是否从终端小键盘检索信息。 如果启用此选项,那么用户可以按功能键 (例如箭头键) ,并且 wgetch 子例程将返回表示该功能键的单个值。 如果禁用,curses 将不会特殊对待功能键,并且程序必须解释换码序列。 要获取这些功能键的列表,请参阅 wgetch 子例程。
- 输入提示
- 指示 curses 在备用文件描述符中检查前面的类型。
有关其他 curses 选项的描述,请参阅 wgetch 子例程和 Understanding Terminals with Curses 。