在UNIX下如何用C语言保存和恢复屏幕(4)
来源:asp之家 发布时间:2010-05-20 18:24:00
■ 後记
学完了上述的一些命令, 相不相信您已经可以写出一个漂亮的全萤幕编辑
器了? 事实上, curses 提供的函式不下 200 个, 可是笔者认为, 一切再
复杂的函式都可以用本文提到的一些组合变化而成, 学了太多的函式, 只
是徒增自己困扰罢了. 当然, 如果您对其它函式有兴趣, 可以自行参阅
curses 说明档. ( 方法: % man curses ) 本文不过行抛砖引玉之效, 也
希望未来能陆续出现更多同学自行创作的程式.
* 任何疑问及建议, 欢迎 e-mail 至 ljh@CCCA.NCTU.edu.tw. 谢谢 ! *
注一:
请参考 /usr/share/lib/termcup
/usr/share/lib/terminfo/s/sun
注二:
1.如果是 BSD 的版本, 需使用
cc [file.c] -lcurses -ltermcap 来完成 compile.
2.计中工作站不知何故将原来的 /usr/5bin/cc 更改为 /usr/5bin/cc.org
因此, 您若想在计中工作站 compile curses 程式.需以 /usr/5bin/cc.org
取代 /usr/5bin/cc , 否则 compile 可能发生错误.
3.较旧版的 curses 需同时引进 curses 和 termlib 这两个 library,
因此, 您必须使用 /usr/5bin/cc [file.c] -lcurses -ltermlib 来 compile.
注三:
根据笔者的经验, 上下左右方向键应可正常使用而不会发生问题, 但其它
如 PgUp,PgDn,功能键,Home,End 等特殊键, 很容易因机器, 键盘不同而无
法使用, 因此, 若您的程式须要在不同的机器上使用, 建议您只用方向键来
控制, 其它的特殊键少用为妙.
至於 PgUp,PgDn 一些特殊键的控制方法, 由於较为复杂, 有兴趣的同学可参
考 tin 原始程式 curses.c 内所使用的一些方法.
UNIX 萤幕导向程式的发展利器 - curses (二)
校园网路策进会
会长 林建宏
在上期为您介绍完了 curses.h 函式库的一些基本函式呼叫後在, 在本期里
, 我们将继续为您介绍 curses 有关多视窗处理的函式. 有了这些函式, 我们
可以在程式里同时处理多个不同的视窗. 如 joe 编辑器内我们可将萤幕切割
成好几个小萤幕, 并且可以在这些不同的萤幕间做切换并编辑不同的档案, 这
就是多视处理的应用. 另外, 有关 POP-UP 视窗的制作, 以及视窗的卷动, 在
本文里, 我们将以简单的例子, 告诉您这些功能是如何做到的. 关於一些较基
本函式的用法, 我们将不再特别介绍. 如果您尚未熟悉 curses 基本函式使用
方法, 请参阅上一期 (80 期 ) 通讯.
■ 视窗的建立
视窗的建立, 以 newwin() 这个函式来完成. 同时, 需宣告此视窗为 WINDOW
结构变数.
WINDOW *newwin(lines,colums,start_y,start_x);
WINDOW *win;
win=newwin(10,20,0,0);
如此, 将以 (0,0) 为原点, 取一个 10 列 20 行的矩形为一新的视窗. 今後
我们只要呼叫 win 这个变数, 就可以对这新视窗做处理.
如: wmove(win,3,2);
■ 多视窗处理函式的格式
这一类函式和一般的基本函式极为类似, 几乎每一个基本函式都有一个对应的
视窗处理函式. 一般将 'w' 加在函式的里头作为区别, 'w' 乃 'window' 之
意. 另外, 因为可同时处理多个视窗, 在呼叫使用时, 需特别指定欲处理的视
窗. 当然, 如果您指定对 stdscr 做处理, 由於是对标准输出入萤幕处理, 其
作用将相当於一般基本的函式.
如:
wmove(win,y,x) 即对 win 这个视窗做 move() 动作.
wmove(stdscr,y,x) 相当於 move(y,x)
介绍一些较重要的函式
wmove(win,y,x)
touchwin(win)
wrefresh(win)
mvwaddstr(win,y,x,str)
wattron(attr)
delwin(win)
subwin(win,ny,nx,y,x)
其他函式多和基本函式互为对应, 故不全部列出, 详细名称可参考 curses
的 online manual.


猜你喜欢
- 全新推出的Discuz! 7.2版本从用户注册登陆应用、社区论坛前后管理两方面着眼,增加和改进了30多处与社区门户运营密切的功能与细节,实现
- 总所周知,SEO对于广大站长来时是极其重要的一课,笔者根据对www.bitjob.net的优化经验,身体力行的实践,合理结合参考专业文献,给
- a)准备工作和建立内容在你注册域名之前,你就应该记录下你的想法,应该准备足够100个网页的内容。请注意是至少。这100个网页应该是真正的内容
- 对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们。在 Linux 中,无论何时当
- 一、背景不定时会做一些内训,会经常用到实验坏境;一开始搭建了一个docker容器,但考虑到不是所有学员都会使用docker,因此做了一个虚拟
- 今年开始到未来的3年,是我国电子商务进入高速发展期的核心时期,电子商务低成本、高效率、信息对称这些优势会迅速地爆发出来,并被大家所接受。电子
- 康盛创想的UCHOME一经发布就让整个站长界着迷,SNS的站点如雨后春笋般大量涌现,可以说造就了真正的社区革命几乎所有的社区都装上了UCHO
- 子曰:三思而后行。意思就是说表示多次。指经过反复考虑,然后再去做。网页title对SEO越来越重要,这点相信大家应该都清楚,所以现在很多SE
- 你的计算机是否适合安装Windows 2000在开始安装Windows 2000之前,为保证安装的顺利和成功,必须保证硬件符合下列最低的需求
- 【搜狐IT消息】(文/雷风)6月25日,原微软中国总裁、盛大网络总裁唐骏在接受搜狐IT采访时对比尔·盖茨进行了评价,并回顾了与盖茨交往中难忘
- 11月17日下午消息,据百度内部可靠消息证实,百度一个月前已低调收购点讯输入法,意在加强百度在手机输入方面的竞争力,目前尚不知道这笔交易的具
- 安装步骤下载地址:6.0版本首先先安装好Oracle VM VirtualBox 安装好后 点击新建弹出新建页面后: 设置名称、安装文件夹、
- 我是从2006年开始注册 Adsense 的,刚刚开始的时候是做一个视频网站,数据涉及采集版权内容,申请了很多次都没有通过.还好那时候ads
- 北京时间10月29日消息,据国外媒体报道,谷歌旗下视频共享网站YouTube周三表示,在上周日YouTube全程直播爱尔兰知名乐队U2的演唱
- 做国外网络赚钱,很多新手都会面临一个如何拿到钱的问题,今天我就对此做个基础知识介绍教程。一般国外联盟主流采用支票,paypal,电汇,西联等
- 4、化解登录服务器响应慢的麻烦为了让各位员工及时、方便地获取单位的各种信息,单位往往会将重要信息全部放到服务器中,让所有员工去共享访问。可是
- 一、链接的统一性搜索引擎排名最主要的因素就是网站内容和链接,假如网站内部链接不一致,在很大程度上直接影响着网站在搜索引擎中的排名。二、合理利
- 使用多个web服务器实现负载均衡,为了保持前端web服务器上资源的一致性可以通过rsync在主服务器上(可写入数据)将更新过的文件同步到其他
- 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WIN虚拟MAC的教程。一、工具:
- 文件传输协议(FTP:File Transfer Protocol)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制