嵌入式Linux开发12(MiniGUI图形界面设计).pptVIP

嵌入式Linux开发12(MiniGUI图形界面设计).ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12.5.2 重要的消息 在窗口(包括主窗口和子窗口在内)的生存周期当中,有几个重要的消息需要仔细处理。如表12-3所示,总结了这些消息的概念和典型处理。 12.5.3 窗口及窗口过程 窗口是MiniGUI当中最基本的GUI元素,一旦窗口建立之后,窗口就会从消息队列当中获取属于自己的消息,然后交由它的窗口过程进行处理。这些消息当中,有一些是基本的输入设备事件,而有一些则是与窗口管理相关的逻辑消息。 12.6 对话框和控件编程 对话框编程是一个快速构建用户界面的技术。通常,在编写简单的图形用户界面时,可以通过调用CreateWindow()函数直接创建所有需要的子窗口,即控件。但在图形用户界面比较复杂的情况下,每建立一个控件就调用一次CreateWindow()函数,并传递许多复杂参数的方法很不可取。主要原因之一,就是程序代码和用来建立控件的数据混在一起,不利于维护。为此,一般的GUI系统都会提供一种机制,利用这种机制,通过指定一个模板,GUI系统就可以根据此模板建立相应的主窗口和控件。MiniGUI也提供这种方法,通过建立对话框模板,就可以建立模态或者非模态的对话框。 12.6.1 控件的概念 控件可以理解为主窗口中的子窗口。这些子窗口的行为和主窗口一样,即能够接收键盘和鼠标等外部输入,也可以在自己的区域内进行输出,只是它们的所有活动被限制在主窗口中。MiniGUI也支持子窗口,并且可以在子窗口中嵌套建立子窗口,将MiniGUI中的所有子窗口均称为控件。 12.6.2 预定义控件 MiniGUI提供了常用的预定义控件类,包括按钮(单选钮、复选钮)、静态框、列表框、进度条、滑块、编辑框,等等。程序也可以定制自己的控件类,注册后再创建对应的实例。如表12-5所示,给出了MiniGUI预先定义的控件类和相应的类名称定义。 12.6.3 自定义控件 用户也可以通过RegisterWindowClass()函数注册自己的控件类,并建立该控件类的控件实例。如果程序不再使用某个自定义的控件类,则应该使用UnregisterWindowClass()函数注销自定义的控件类。上述两个函数以及和窗口类相关函数的原型如下(include/window.h): BOOL GUIAPI RegisterWindowClass (PWNDCLASS pWndClass); BOOL GUIAPI UnregisterWindowClass (const char* szClassName); 12.6.4 控件子类化 采用控件类和控件实例的结构,不仅可以提高代码的可重用性,而且还可以方便地对已有控件类进行扩展。比如,在需要建立一个只允许输入数字的编辑框时,就可以通过重载已有编辑框控件类而实现,而不需要重新编写一个新的控件类。在MiniGUI中,这种技术称为子类化或者窗口派生。子类化的方法有以下三种: (1)对已经建立的控件实例进行子类化,子类化的结果是只影响这一个控件实例。 (2)对某个控件类进行子类化,将影响其后创建的所有该控件类的控件实例。 (3)在某个控件类的基础上新注册一个子类化的控件类,不会影响原有控件类。在Windows中,这种技术又称为超类化。 12.6.5 对话框和对话框模板 在MiniGUI中,对话框是一类特殊的主窗口,这种主窗口只关注与用户的交互——向用户提供输出信息,但更多的是用于用户输入。对话框可以理解为子类化之后的主窗口类。它针对对话框的特殊性(即用户交互)进行了特殊设计。比如用户可以使用TAB键遍历控件、可以利用ENTER键表示默认输入等。在MiniGUI当中,在建立对话框之前,首先需要定义一个对话框模板,该模板中定义了对话框本身的一些属性,比如位置和大小等,同时定义了对话框中所有控件的初始信息,包括位置、大小、风格等。在MiniGUI中,用两个结构来表示对话框模板(src/window.h)。结构CTRLDATA和DLGTEMPLATE的定义如下所示。 1-* 第12章 MiniGUI图形界面设计 课程安排 12.1 Minigui概述 12.2 Minigui的安装和使用 12.3 利用Eclipse编写MiniGUI程序 12.4 MiniGUI的编程基础 12.5 消息循环和窗口过程 12.6 对话框和控件编程 12.7 图形设备接口 12.8 实例--MiniQQ界面设计 12.9 小结 12.1 MiniGUI概述 MiniGUI最初是为了满足一个工业控制系统的需求而设计和开发的。这个工业控制系统是清华大学为一台数控机床设计的计算机数控系统(CNC)。在比较了DOS、Windows 98、Windows NT、Linux等系统之后,该项目组决定选择RT-Linux作为实时操作系统,以便满足2ms甚至更高的实时性。

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档