📄 00000006.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:Cardinal.bbs@mic.ee.ntu.edu.tw">Cardinal.bbs@mic.ee.ntu.edu.tw</A> (Cardinal), 信区: unix <BR>标 题: Re: 请问谁会用 curses 显示 ANSI color 字 <BR>发信站: 台大电机 Maxwell 站 <BR> <BR>首先声明,这一封的内容应该属於 programming board,但是现在有不止一个 <BR>人问我这个问题,所以在这个版再把详细的方法说明一遍。如果有人看不懂而 <BR>仍然有兴趣的,请 mail 给我 (<A HREF="mailto:Cardinal.bbs@mic.ee.ntu.edu.tw)">Cardinal.bbs@mic.ee.ntu.edu.tw)</A> ,不要在 <BR>这边 reply,我会考虑在私下或在 programming board解决你的问题。 <BR> <BR>==> 在 Cardinal@Maxwell (Cardinal) 的文章中提到: <BR>∶<I> 1.开一个 new window (newwin) </I><BR>∶<I> 2.设定 window 的彩色属性 (wattrset) </I><BR> <BR>==> 在设定彩色属性之前应该先设定颜色的 "pair" ,所谓的 "pair" 是指 <BR> foreground及background的颜色。curses的颜色有下面几种 (type为 <BR> short) : <BR> COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW, COLOR_BLUE, <BR> COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE <BR> <BR> 用init_pair(short pair, short f_color, short b_color)来设定 pair, <BR> for example: <BR> init_pair(100, COLOR_RED, COLOR_BLUE) <BR> 就设定了编号为 100, 蓝底红字的 color pair 了. <BR> <BR> 另外你要是嫌这几种颜色太单调了, 可以用 init_color 来设定色彩, 细节 <BR> 这边就不谈了. <BR> <BR> 然後就用 wattrset(WINDOW* pwindow, short color_pair)设定你window的 <BR> 颜色, for example: <BR> wattrset(pwindow, 100) 就设定了一个蓝底红字的 window (不要忘记 <BR> 这儿的 100 是刚刚用 init_pair设定的值) <BR> <BR>∶<I> 3.印在 window 的字就自动变成那个颜色了 (mvwprintw, mvwaddstr, ...) </I><BR> <BR>==> 这句... 该不会有问题吧. <BR> <BR>∶<I> 4.想要印不同颜色的字,只要把那个字 "OR" (|) 不同的颜色即可 (记住, </I><BR>∶<I> 这种有属性的字要用 int,不能用 char) </I><BR> <BR>==> 其实型别不是用 int, 而是用 chtype (不过没有差别, 去查查 curses.h就 <BR> 知道) , 譬如说, 你想要在刚刚设定为蓝底红字的 window印一个别的颜色的 <BR> 'A' 字, 可以这麽做 : <BR> <BR> init_pair(another_color_pair, COLOR_随便, COLOR_随便) -->先设定另一 <BR> 个 color pair <BR> char cascii = 'A'; <BR> chtype cascii_color = cascii | another_color_pair; <BR> <BR> 再把 cascii_color 印出来就是一个你想要颜色的 A 了. <BR> <BR>-- <BR> ~ Cardinal ~ <BR> <BR>From: Cardinal (Cardinal) <BR>Title: 关於精华区... <BR>Date: Fri Mar 10 20:36:27 1995 <BR> <BR> <BR>您好: <BR> <BR>在 programming 版精华区 unix - curses libraries 中有一篇文章是我写的, <BR>刚刚来这边找资料时翻到的, 真是受宠若惊. 不过原来的文章 (如何用 curses <BR>显示彩色) 有一点忘了提到, 希望您能把下面的说明加进去: <BR> <BR> 1. init_color及init_pair 是 SystemVR3以後的标准, 不适用於 BSD 或 <BR> SunOS. <BR> 2. 在 SunOS 上要达成这样的目的, 我知道的有两种解法 <BR> a.有一款大同的中文工作站有支援 init_color & init_pair 的 library <BR> 这一型的 library 与 SunOS 为 object-code compatible. <BR> b.ncurses 支援 init_pair & init_color <BR> <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -