在UNIX下如何用C语言保存和恢复屏幕(5)
来源:asp之家 发布时间:2010-05-20 18:24:00
■ 视窗内的座标系
视窗内的座标系, 将以此视窗的起始点为新原点, 并以其相对位置作为新的
座标. 举例来说
win=newwin(10,20,5,5);
wmove(win,2,3);
将以 (5,5) 为新原点, y 方向移动 2 单位, x 方向移动 3 单位. 因此实际
上, 游标将移动至 y=7 x=8 的位置上.
■ POP-UP 视窗的建立
利用 curses 所提供的视窗处理函式, 我们可以做出像 ONLINE HELP 的 POP
-UP 画面. 当按下某键後, 一个新的视窗将像 " 跳 " 出来一般覆盖原来的画
面. 当关掉此视窗後, 又不会影响到原来被覆盖的画面.
下面的例子, 我们及模拟 ONLINE HELP 的形式, 当按下 'h' 键时, 视窗即出现
#include <curses.h>
main()
{
int ch,x,y;
WINDOW *win;
initscr(); ←┐
cbreak; │ 启动 curses 模式
noecho(); │
nonl(); ←┘
win=newwin(4,30,LINES/2-3, COLS/2-15);/* 建立一个新视窗, 其中LINES,COLS
*/
box(win,'|','-'); /* 为 curses 内定值,即萤幕行/列数*/
mvwaddstr(win,1,4,"This is another screen");
mvwaddstr(win,2,2,"Press anykey to continue..");
for (y=0;y<LINES;++y) /* 以'@'填满萤幕 */
for (x=0;x<COLS;++x)
mvprintw(y,x,"@");
for(;;) {
refresh();
ch=getch();
switch(ch) {
case 'q': /* 按 'q' 键离开 */
endwin();
exit(0);
case '\t': /* 按 [TAB] 键 呼叫另一视窗 */
touchwin(win); /* wrefresh() 前需 touchwin() */
wrefresh(win);
getch(); /* 按任意键关闭视窗 */
touchwin(stdscr);
break;
default:break;
}
}
}
执行结果:
┌————————————————————————————┐
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
└————————————————————————————┘
↑ 原来画面被 '@' 填满, 按下[TAB]键後
↓ 出现 POP-UP 画面.
┌————————————————————————————┐
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@□---------------------------+@@@@@@@@@@@ │
│ @@@@@@@@@@@@@| This is another screen |@@@@@@@@@@@ │
│ @@@@@@@@@@@@@| Press anykey to continue.. |@@@@@@@@@@@ │
│ @@@@@@@@@@@@@□---------------------------+@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │
└————————————————————————————┘


猜你喜欢
- Google Web Fonts 免费为你的博客提供安全而漂亮的字体服务。通过使用Google Web Fonts,你的博客不用上传任何字体
- 最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了
- 这里将按照PJBLOG投放广告位置来讲解。由于PJBLOG采用UTF-8编码,所以编辑代码时请使用支持UTF-8编码的编辑器。一.在PJBL
- 1)不要下载www.php.net上面那个Windows Installer装完了之后不能用MYSQL都不知道问题出在哪。永远修不好,没错的
- 如果你已经购买了一款服务器,但仍然觉得其“动力”不够强劲,不妨试试下面列出的几个办法,许多情况下,它们往往能够起到事半功倍的效果。1.增加内
- 所有搞网络营销的人都知道论坛营销基本是以量取胜,为什么说是以量取胜呢,因为你在一个论坛上只发一个帖子,基本上没什么效果,所以现在出现了很多如
- 1).所建网站->(右键)权限->"ASP.NET计算机帐户"是否已添加。 2).所建网站->(右键)
- 使用Apache Camel的REST服务Apache Camel可以作为一个独立的或嵌入的库在任何地方运行,它可以帮助整合。继续阅读,了解
- 1、对于论坛的优化来说是比较难的,主动性太差,一般在不计用户体验的情况下点击率达到3%已经很不容易了。2、对于论坛来说,我们的目标就是尽可能
- centos7进行ip和端口限制1、限制指定IP访问本机编辑hosts.allow和hosts.deny两个文件,保存即生效。1.1、编辑e
- 夜深了,不知为何,忽然想起《人间词话》。打开橘黄色的台灯,静静地看。窗外冷冷的,不知未名湖的水如何。眼帘一触及“人生三大
- 在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="sele
- 北京时间11月16日消息,有消息称,谷歌正式推出Chrome操作系统的时间定于11月18日。科技博客网站TechCrunch在上周末曾透露,
- 一、遵循W3C规范W3C是英文 World Wide Web Consortium 的缩写,中文意思是W3C理事会或万维网联盟。W3C于19
- 1. 使用Twitter来Tweet或者分享:或许通过Twitter来分享精彩博文是最快速有效的途径,在Twitter中分享和ReTweet
- linux系统中,利用grep打印匹配的上下几行如果在只是想匹配模式的上下几行,grep可以实现。//搜索inputfile中满足partt
- 配置1.Kerberos提供了一个集中式的认证服务器结构,认证服务器的功能式实现用户与其访问的服务器间的相互鉴别。(采用的是对称密钥加密技术
- 1 引言线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统
- 国内做SEO的人可能会经常听到这样一句话“你可以不懂如何改META,但你必须知道如何做外链。”可见外链作为SEO优化中的一个手段被许多SEO
- 今天早上,百度搜索引擎网站在中国很多地区都打开异常,疑遭类似黑客攻击,攻击者自称Iranian Cyber Army(伊朗网军)的组织篡改了