电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第三章:curses库窗口

第三章:curses库窗口_第1页
1/32
第三章:curses库窗口_第2页
2/32
第三章:curses库窗口_第3页
3/32
第3 章 cu rses 库窗口 ·1· 第3 章cu rses 库窗口 3.1 cu rses 窗口简介 3.1.1 窗口概念 窗口是 cu rses 库中最重要的一个组件,它实际上是屏幕上的一块矩形区域,在上面我们可以进行各种输出以及操作。cu rses 库中提供了大量的函数以允许我们创建和操作自己的窗口,而不仅仅是只能使用标准窗口stdscr。对自定义窗口进行操作的函数一般与对标准窗口进行操作的函数是相同的,除非它们需要特别的参数,这个参数通常为一个指向自定义窗口的指针。cu rses 也允许创建一种称之为基垫的窗口,英文名称为 pad。基垫的各个方面与窗口并无二异,只是它的大小和位置不再局限于终端屏幕的可视部分。它可以比标准屏幕大,位置也可以位于标准屏幕之外而我们看不到。因为窗口函数只是 cu rses 库函数的一部分,因此我们可以用同样的方法来编译使用窗口的程序。我们在这一章只介绍最常用的一些函数,必要时我们会给出几个综合的例子,从而加深对窗口的理解和应用能力。 窗口可以位于标准屏幕的任何位置,它们之间可以相互重迭包括与标准屏幕。窗口同时可以包含与它们相关联的子窗口。任何在父窗口和子窗口重迭区域的变化都会同时影响到它们中的任何一个。与子窗口类似,基垫也同样有子基垫,英文名称为 su bpad。子基垫是与父基垫相关联并且位于父基垫之内的窗口。刷新基垫和子基垫与刷新窗口和子窗口有些细微的差异。这种具体的差异我们在后面会慢慢介绍。 图 3.1 具体的演示了窗口、子窗口、基垫、子基垫之间的相互关系。 UNIX/Linux 下的CURSES 库开发指南 ·2· 图 3.1 3.1.2 窗口数据结构 在使用窗口之前我们先看一下窗口的数据结构定义,通常它在头文件 curses.h 中: typedef struct _win_st WINDOW; struct _win_st { short _cury, _curx; /* 光标当前位置 */ short _maxy, _maxx ; /* 最大的位置值 */ short _begy , _begx ; /* (0,0) 窗口相对于标准窗口的位置 */ char _flags ; short _yoffset ; /* 偏移量 */ bool _clear , /* clearok() 信息 */ _leave, /* leaveok() 信息 */ _immed, /* window in immediate mode */ _sync; /* auto syncup of parent */ WINDOW *_padwin; /* 当前窗口的”pad”区域*/ #ifdef _VR3_COMPAT_CODE _ochtype ** _y16; /* MUST stay at this offset in WINDOW */ ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第三章:curses库窗口

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部