免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1498 | 回复: 1
打印 上一主题 下一主题

[函数] >>请教各路大虾:关于curses函数的几个问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-25 22:45 |只看该作者 |倒序浏览
本人最近刚开始学习使用curses函数库编程,看了各路大虾关于curses函数的精华贴子,受益非浅,但有几个问题一直搞不明白:

1.关于touchwin()函数,是不是指从内存中激活指定的已定义的窗口(切换为当前窗口)?

2.关于delwin()函数,是不是指从内存中删除指定的已定义的窗口,释放其占用的资源?(可是我在使用时,若把指定的已定义的窗口delwin(),可再使用touchwin()函数还是可以激活,这是为何?)

3.如何从窗口指的位置读取输入(字符串)?

4.是否使用touchwin()函数激活窗口后,原处于激活状态下的窗口是否自动退出激活状态?

5.我在实际使用中发现,touchwin()函数单独使用可以激活窗口,wrefresh()函数单独使用也可以激活窗口,是否可以单独使用?(在说明中都是要求配对使用,其意义何在?)

6.若已使用endwin()函数退出curses模式,请问,再要进入curses模式是否要调用已定义的init_curses()函数?(若不是,要如何返回cruses()模式?)

以上几个问题,请版主及各路大虾帮助解答,希望能详细说明而最好不要使用转贴,小弟不胜感激!!

论坛徽章:
0
2 [报告]
发表于 2003-05-26 10:13 |只看该作者

>>请教各路大虾:关于curses函数的几个问题?

也许不是很正确,请大家指正:
1.touchwin()的作用是更新窗口中的内容,如同把窗口中的每个字符都重写一遍,为下次wrefresh()时做准备。该函数实际上只是改变了窗口结构中的一个标志位,标志该窗口有更新的内容,是为窗口显示功能的优化而设。
2.delwin()函数是从当前显示窗口中去掉该窗口,这跟窗口机制有关,每个窗口都是在显示窗口SCREEN中有一个影子,本函数只是把这个窗口从影子集中去掉,但关未从内存中删除。
3.这个问题较模糊,不知道是什么意思?是指从标准输入中读还是要读出已要显示在窗口中的字符?如是前者,用一般的标准输入就可以解决。如是后者,可以查阅curses的有关库例程,有说明的。
4.解释见一。
5.解释见一。也许是因为实现版本的不同,你手上的touchwin()自动调用了wrefresh()。touchwin()是在内存里对窗口数据进行更新,而wrefresh()是对窗口在屏幕上的显示进行刷新。
6.用endwin()退出curses模式后需要重入的话,需要重做init,不能返回上次的状态。

以上回答可能不正确,请知情者指正,以免误人。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP