在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.

标签:unix,c语言,屏幕
0
投稿

猜你喜欢

  • 浅谈Linux条件变量的使用

    2023-08-25 22:42:22
  • 美图秀秀满周岁 周年新版换新颜

    2009-10-13 11:04:00
  • 技巧:加固外网上的IIS服务器安全

    2009-08-29 13:57:00
  • 水浒Q传更换代理商 搜狐畅游插手接替金山

    2009-11-19 11:38:00
  • 论SEO服务之红海战略和蓝海战略

    2009-01-09 13:22:00
  • Apache中解决动态地址跳转死循环的方法

    2022-11-10 12:55:39
  • 外部链接优化 提交到DMOZ以及链接诱饵

    2009-03-09 11:16:00
  • 从《赤壁》中想到目标用户的重要性

    2008-08-05 17:56:00
  • 话说一边做站一边玩网页游戏的N个好处

    2008-11-12 12:32:00
  • Windows Server 2008 RC0发布了

    2007-09-26 13:39:00
  • 网络协议基础知识 SMTP协议和UDP协议

    2010-03-08 18:36:00
  • 酷6网成世博会世博公关新星网络视频赛区

    2009-10-22 11:27:00
  • 不靠百度,如何提高网站的来访量

    2007-11-19 13:25:00
  • 亚马逊将推出用户购物升级服务PayPhrase

    2009-10-30 13:43:00
  • 单页面SEO优化到底是不是海市蜃楼

    2008-01-23 19:07:00
  • Windows Server 2008成为IT新宠

    2008-12-08 13:59:00
  • Photoshop官方提供2G可外链的免费相册

    2009-07-30 13:03:00
  • 首个国家网络电视台开建 支持网民原创作品上传

    2009-10-14 10:11:00
  • 老站长谈如何选择域名 虚拟主机 CMS建站程序

    2010-03-21 01:44:00
  • Apache服务器必备基本安全设置

    2023-10-19 12:35:16
  • asp之家 网站运营 m.aspxhome.com