⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000006.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -