在UNIX下如何用C语言保存和恢复屏幕(7)
来源:asp之家 发布时间:2010-05-20 18:24:00
■ 结语
我们以连续两期来介绍 curses.h 函式库的使用方法, 相信同学对撰写这类的
程式应该不再陌生. 所谓『戏法人人会变, 巧妙各有不同』. 知道了基本函式
的呼叫方法, 能不能写出实用的程式, 就靠各位的巧思和创造力了.
有任何问题建议, 欢迎 E-mail 至 ljh@CCCA.NCTU.edu.tw , 谢谢 !
发信人: Cardinal.bbs@mic.ee.ntu.edu.tw (Cardinal), 信区: unix
标 题: Re: 请问谁会用 curses 显示 ANSI color 字
发信站: 台大电机 Maxwell 站
首先声明,这一封的内容应该属於 programming board,但是现在有不止一个
人问我这个问题,所以在这个版再把详细的方法说明一遍。如果有人看不懂而
仍然有兴趣的,请 mail 给我 (Cardinal.bbs@mic.ee.ntu.edu.tw) ,不要在
这边 reply,我会考虑在私下或在 programming board解决你的问题。
==> 在 Cardinal@Maxwell (Cardinal) 的文章中提到:
: 1.开一个 new window (newwin)
: 2.设定 window 的彩色属性 (wattrset)
==> 在设定彩色属性之前应该先设定颜色的 "pair" ,所谓的 "pair" 是指
foreground及background的颜色。curses的颜色有下面几种 (type为
short) :
COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW, COLOR_BLUE,
COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE
用init_pair(short pair, short f_color, short b_color)来设定 pair,
for example:
init_pair(100, COLOR_RED, COLOR_BLUE)
就设定了编号为 100, 蓝底红字的 color pair 了.
另外你要是嫌这几种颜色太单调了, 可以用 init_color 来设定色彩, 细节
这边就不谈了.
然後就用 wattrset(WINDOW* pwindow, short color_pair)设定你window的
颜色, for example:
wattrset(pwindow, 100) 就设定了一个蓝底红字的 window (不要忘记
这儿的 100 是刚刚用 init_pair设定的值)
: 3.印在 window 的字就自动变成那个颜色了 (mvwprintw, mvwaddstr, ...)
==> 这句... 该不会有问题吧.
: 4.想要印不同颜色的字,只要把那个字 "OR" (|) 不同的颜色即可 (记住,
: 这种有属性的字要用 int,不能用 char)
==> 其实型别不是用 int, 而是用 chtype (不过没有差别, 去查查 curses.h就
知道) , 譬如说, 你想要在刚刚设定为蓝底红字的 window印一个别的颜色的
'A' 字, 可以这麽做 :
init_pair(another_color_pair, COLOR_随便, COLOR_随便) -->先设定另一
个 color pair
char cascii = 'A';
chtype cascii_color = cascii | another_color_pair;
再把 cascii_color 印出来就是一个你想要颜色的 A 了.
--
~ Cardinal ~
From: Cardinal (Cardinal)
Title: 关於精华区...
Date: Fri Mar 10 20:36:27 1995
您好:
在 programming 版精华区 unix - curses libraries 中有一篇文章是我写的,
刚刚来这边找资料时翻到的, 真是受宠若惊. 不过原来的文章 (如何用 curses
显示彩色) 有一点忘了提到, 希望您能把下面的说明加进去:
1. init_color及init_pair 是 SystemVR3以後的标准, 不适用於 BSD 或
SunOS.
2. 在 SunOS 上要达成这样的目的, 我知道的有两种解法
a.有一款大同的中文工作站有支援 init_color & init_pair 的 library
这一型的 library 与 SunOS 为 object-code compatible.
b.ncurses 支援 init_pair & init_color


猜你喜欢
- Foxmail Server(FMS)是一款功能强大的邮件服务器软件,他提供了多种邮件服务,包括SMTP、POP3、LDAP等,并内建邮件扩
- 1,文章页的tag的调用解决办法V5.3TAG的调用方式为:TAG:{dede:field.tags/} 这个在内容页模板中使用全局标签{d
- Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商。它可以在网站的内容网页上展示相关性较高的 Goog
- 核心提示:10年后,数据分析和行业渗透能力才是SEOER所特有的、能够经得起时间考验的,难以模仿的“核心竞争力&
- 酝酿测试几个月的Google AdSense今日开放西联汇款 加快汇款速度,最高金额1万美金,不能给公司汇款。详细内容: 选择付款形式当月
- 共享进行曲完成上面的WEB共享准备工作后,我们下面就需要将现成的IIS服务器改造成一个信息共享访问平台了,以后需要与他人交流的共享信息可以直
- 康盛创想(Comsenz)推出的UCenter Home强调只提供用户愿意关注的信息,在信息噪音方面有着多级筛选控制。每一个人都可以将自己的
- 尽管网站仍然保持在线,但传奇网站海盗湾的站长最近终于决定永久关闭网站的Tracker服务器,只开放网站的DHT功能,一段传奇就此落幕。看起来
- 终端服务是在Windows NT中首先引入的一个服务。终端服务使用RDP协议(远程桌面协议)客户端连接,使用终端服务的客户可以在远程以图形界
- 搭建 PHP 其实不很难,只是有点繁琐。要是自己搭建一次 PHP + MySQL 环境很是费时。更糟的是,很多新手在配置 PHP 时常常出现
- DedeCMS Error Warning,这个问题我也出现过,有办法解决,但能不能行得通还是个问题,如果你是独立服务器可以使用以下两个方法
- 一款“开心农场”让众多网民非网民们见识到了WebGame的力量到底有多大,那些起早摸黑半夜钻出被窝不惧寒冷只为偷菜的人们,在所有人看来这是极
- 上月底,PankRank更新,我的博客小升一格,又重新勾起我对PR的浓厚兴趣。但是大部分的PR查询工具都只是单页面的查询,如何才能获取整个网
- Google PR是现在搜索引擎技术的基石之一,其他搜索引擎不一定叫PR,但肯定也在使用相同的技术。PR值在搜索引擎排名的各个阶段都可能用到
- 一、memcached的安装1、下载 memcached-1.4.33.tar.gz、libevent-2.0.22-stable.tar.
- 现在论坛到处可见,有的论坛很强大,几万几十万甚至几百万IP都有,地域性的(如:某个县的论坛)、实用性的(如炒股论坛)、行业性的(如化工行业)
- 搜狐近日公布了2009年度财务报告,总收入达5.152亿美元,年增长率达20%,其中子公司畅游所运营的游戏业务收入为2.676亿美元,超过母
- 各位新老站长朋友们大家好,我是芭芭啦音乐论坛的站长,这个论坛是我最近和一个朋友一起做的,因为我们都比较爱好音乐,所以做了这样一个对自己兴趣的
- Site5是一家成立于1999年年初,至今(2008年9月23日)已经经营近十年了,它是一家具有极高信誉的虚拟主机服务商,其服务器位于圣拉蒙
- 微软全球技术支持中心亚太区总经理柯文达在今天IT市场两会上接受网易科技专访时表示“Windows激活技术”对正版用户来说是一种保护,“对那些