在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.
猜你喜欢
- 11月15日,淘宝旗下搜索引擎一淘网宣布正式对外测试“开放搜索”功能。淘宝搜索中心资深总监张谦对记者表示,以往用户购物有两个选择,一是通过百
- 个人网站越来越多,据说现在中国个人站长已经超过了3200万。而且由于CN域名一元促销活动的推动,越来越多的网民走向了个人站长的道理。但是,网
- 我就从我是谁以及我做gg adsense多久了开始这篇文章吧。我名叫Chris,是澳大利亚Brisbane的一名21岁的大学在校学生。200
- 速度|显示|页面  
- 休闲游戏开发商PopCap今天宣布,去年风靡全球的小游戏《植物大战僵尸》(Plants vs. Zombies)在移植到iPhone平台后,
- IE9引入了Pinned Sites 新概念。Pinned Sites允许用户把网站像Windows应用程序一样“钉”在Windows 7
- GoDaddy.com, Inc. 已与Google合作,来为你提供一种你在创建你的共享托管账户是就可以用来立即登陆你的网站数据的站长管理工
- 如果要允许用户在站点中上载或下载文件,就需要在 Web 服务器上设置 FTP。无论站点是位于 Intranet 还是位于 Internet
- 我们期待您能通过提供优质的内容和服务来服务于用户和整个互联网。与此同时,您或许经常听到来自互联网界的关于链接问题的讨论,人们各持己见,争论不
- 今天继续介绍Godaddy常见问题之托管帐户上使用的是什么版本的ColdFusion。我们用的是Macromedia ColdFusion
- Web和FTP服务器创建好之后,还需要进行适当的管理才能使用户的信息安全有效的被其他访问者访问。Web和FTP 服务器的管理基本相同,包括一
- 我们先给出几种主要的分页方法和核心语句,然后直接给出结论,有兴趣的读者可以看看后面的数据几种常用存储过程分页方法TopN方法select T
- 广告颜色是广告优化中一个富有创造性的要素。 Google AdSense 帐户中不仅提供了调色板供您选择,您还可以自定义广告颜色。广告颜色的
- 一,需求1,虚拟用户登录由于之前配置成功了postfix+MySQL虚拟用户登录,体会到了使用虚拟用户的好处和灵活性,所以这次也考虑采用虚拟
- 问:我使用的在线检查软件警告说,发现DDoS攻击,请问这到底是什么意思?机器是单位的局域网,和这个有关系吗?我应该如何去判断是否遭到流量攻击
- 有的服务器可以用sql溢出,可惜就是找不到进一步的入侵方法,因而一直也没有拿下来。今天在校盟看到一篇文章,说是在cmd下也可以中入sql账号
- 10月14日消息,瑞士信贷周二表示,受惠于2010年上半年对于新款服务器芯片-Nehalem的强劲需求,将有助于提高英特尔的收入。瑞士信贷因
- 一、您必须有一个属于您自已的域名。比如:abc.com。没有域名的必须先注册一个域名。二、在国际域名中心注册一个DNS域名,以使您的DNS服
- 本文是谷歌关键字广告(Google AdWords)专家Amanda Kelly 在“事半功倍做营销”系列讲座中的第二讲。在当前的经济环境下
- 打开:hack/toolcenter/require/defend.php整个文件内容替换为一下代码:<?php !function_