- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Welcom to RTGUI
这是一篇引导学习RTGUI 的文章。
RTGUI 是使用C 语言编写的,文中也尽量使用C 语言来描述。
由于RTGUI 的设计架构经常发生变化,所以文中不会涉及架构方面的内容,这并不
妨碍学习,很多内容并不依存于 GUI 架构。
对于没有太多 GUI 概念的人来说,阅读时可能会遇到一些不明白的地方,建议不妨
试着读下去,或许后面会有答案。
要想了解代码的功能,必须先弄清楚它的数据结构。
Let s go
第一章 RTGUI 控件对象的管理机制
RTGUI 使用标准ANSI C 来组织代码。 就意味着它拥有很好的移植性,也降低了
学习它的门槛,只要在课堂上学习过C 语言的知识,都可以读懂RTGUI 的代码。如果你
觉得基础不够好,没关系,这篇文章或许能够给你一些参考。
RTGUI 使用了对象的概念来管理所有数据。
GUI 是在显示器上使用图形的方式与人进行交互的接口。简单的划分,可以将 GUI
程序分为创建与管理图形和提供交互手段两大功能。
在对象模型中,虽然每一种对象都拥有自己的特征和行为,但是有时候很多对象的一
些特点都是相同的,使用这些 同特性设计出公 对象,然后再派生出新对象, 样既
拥有 同特性,也有个性的特点。使用对象的概念编程,可以让代码变得有条理,更符
合思维逻辑。 种设计思想被广泛的应用到对象设计程序当中。
RTGUI 程序也使用了 种设计思想。
RTGUI 使用 struct rtgui_obj ect 个对象来管理所有控件对象的创建与销毁工作,并
以rtgui_obj ect 为基础,派生出了所有的控件对象。
下面会分为 两个部分介绍RTGUI 的控件模型,重点讲述object 、widget 、container
和toplevel 4 个对象,之所以关注它们,是因为它们拥有的一些特性,使其在RTGUI
当中担任了一些重要角色。它们撑起了RTGUI 的控件管理架构,其他对象或控件基本上
都是 4 种对象的派生体或衍生对象。虽然随着版本的发展,可能会产生其它的类型代
替它们,或者拥有新的功能。但是遵循的原理是基本相通的。
一.RTGUI 控件对象的创建与销毁
控件是将一些数据和有关的方法封装在一起,可与用户产生互动行为的一些图形化
元素。所以控件具有可操作性,可以产生不同的行为。
不同的控件拥有不同的数据结构。在RTGUI 中使用一种控件类型管理机制来区分不
同的控件对象。让人们更方便的使用它们。
下面分析 个控件类型管理机制是如何运作的。
RTGUI 中有一个数据结构rtgui_type ,其定义如下所示:
0.4 版中的定义形式:
/* rtgui type structure version 0.4*/
struct rtgui_type
{
/* type name */
char* name;
/* hierarchy and depth */
rtgui_type_t **hierarchy;
int hierarchy_depth;
/* constructor and destructor */
-1-
Welcom to RTGUI
rtgui_constructor_t constructor;
rtgui_destructor_t destructor;
/* size of type */
int size;
};
1.0 版中的定义形式
/* rtgui type structure version 1.0*/
struct rtgui_type
{
/* type name */
char* name;
/* parent type link */
struct rtgui_type *parent;
/* constructor and des
您可能关注的文档
最近下载
- 20171017_宁波新世界明楼项目汇报文件.pptx VIP
- (人教PEP版2024)英语五年级上册 Unit2 大单元教学设计.docx VIP
- 劳务合同模板2025.docx VIP
- 高性能探针卡生产线项目规划设计方案.docx
- 2024年秋新沪科版物理八年级上册 第五章大单元整体设计 教学课件.pptx VIP
- 数字赋能乡村治理的实践探索与优化路径——以晋南S村为例.pdf
- 《道路运输管理实务》第2版综合测试题.docx VIP
- 《人工智能导论》课件.ppt VIP
- 第一章 大学生心理健康教育.pdf VIP
- 《铁路线路养护与维修》课件全套 模块1、2 基础知识;普速铁路线路工务作业.pptx
文档评论(0)