⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000003.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;Kongming&nbsp;(没日没夜...),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;MiniGUI&nbsp;的特色(1)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Fri&nbsp;Jul&nbsp;&nbsp;2&nbsp;15:56:25&nbsp;1999)&nbsp;<BR>&nbsp;<BR>一、概述&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;是&nbsp;Linux&nbsp;控制台上运行的,基于&nbsp;SVGALib&nbsp;和&nbsp;LinuxThread&nbsp;&nbsp;<BR>库的多窗口图形用户界面支持系统。MiniGUI&nbsp;采用了类&nbsp;Win32&nbsp;的&nbsp;API&nbsp;接&nbsp;<BR>口,实现了简化的类&nbsp;Windows&nbsp;98&nbsp;风格的图形用户界面。图形用户界面在&nbsp;<BR>许多情况下都优于字符界面,其最大的优点是使应用程序的操作简单易学。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;MiniGUI&nbsp;中,图形用户界面包括如下基本元素:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-----主窗口&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------窗口非客户区&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------窗口标题&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------窗口边框&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------菜单栏&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------窗口客户区&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------子窗口(窗片或控件)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-------------对话框&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-----------对话框控件&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图&nbsp;1-1&nbsp;&nbsp;图形用户界面的基本元素&nbsp;<BR>&nbsp;<BR>1.1&nbsp;&nbsp;窗口&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;中的窗口基本分四类,分别为主窗口、对话框、控件和主窗口&nbsp;<BR>中的窗片。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;中的主窗口和&nbsp;Windows&nbsp;应用程序的主窗口概念类似,但略微&nbsp;<BR>有些不同,MiniGUI&nbsp;中的每个主窗口对应于一个单独的线程,通过函数调用&nbsp;<BR>可建立主窗口以及对应的线程。每个线程有一个消息队列,主窗口从这一消&nbsp;<BR>息队列中获取消息并由窗口过程(回调函数)进行处理。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;中的对话框是一种特殊的窗口,对话框一般和控件一起使用,&nbsp;<BR>这两个概念和&nbsp;Windows&nbsp;的相关概念是类似的。MiniGUI&nbsp;支持的控件类型有:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;静态框:文本、图标或矩形框等。这种控件的属性一般不会在运&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;行时发生变化。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文本框:单行或多行的文本编辑框。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按钮:单选钮、复选框和一般按钮等。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其他特殊控件。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>1.2&nbsp;&nbsp;消息和消息循环&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在Windows系列操作系统中,广泛使用了消息驱动的概念。在MiniGUI&nbsp;<BR>中,我们也使用了消息驱动作为应用程序的创建构架。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在消息驱动的应用程序中,计算机外设发生的事件,例如键盘键的敲&nbsp;<BR>击、鼠标键的按击等,都由支持系统收集,将其以事先的约定格式翻译为&nbsp;<BR>特定的消息。应用程序一般包含有自己的消息队列,系统将消息发送到应&nbsp;<BR>用程序的消息队列中。应用程序可以建立一个循环,在这个循环中读取消&nbsp;<BR>息并处理消息,一直处理到特定的消息传来为止。这样的循环称为消息循&nbsp;<BR>环。一般地,消息由代表消息的一个整型数和消息的附加参数组成。例如,&nbsp;<BR>鼠标左键的按下消息,可能由133这个数来表示,其附加参数可能包含按下&nbsp;<BR>时的鼠标所在位置信息。例如,MiniGUI中如下定义消息:&nbsp;<BR>&nbsp;<BR>typedef&nbsp;struct&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hwnd;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WPARAM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wParam;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPARAM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lParam;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;<BR>}MSG;&nbsp;<BR>&nbsp;<BR>message&nbsp;指定了特定的消息类型,wParam&nbsp;是以unsigned&nbsp;int类型定义的&nbsp;<BR>消息的短参数,lParam&nbsp;是以&nbsp;long&nbsp;类型定义的消息长参数。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;应用程序一般要提供一个处理消息的标准函数。在消息循环中,系统&nbsp;<BR>可以调用此函数,应用程序在此函数中处理相应消息。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;图&nbsp;1.2是一个消息驱动的应用程序的简单构架示意。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;外设事件&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---&gt;|&nbsp;主窗口线程消息队列&nbsp;|----&gt;&nbsp;|&nbsp;消息循环&nbsp;|&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;<BR>&nbsp;&nbsp;&nbsp;---------------&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;<BR>&nbsp;&nbsp;|&nbsp;&nbsp;多窗口管理器&nbsp;|---&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/&nbsp;<BR>&nbsp;&nbsp;&nbsp;---------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----------&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;窗口过程&nbsp;|&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----------&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图&nbsp;1.2&nbsp;&nbsp;消息驱动的应用程序的简单构架&nbsp;<BR>&nbsp;<BR>在&nbsp;MiniGUI&nbsp;中,消息分为如下几种类型:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;系统消息,为系统内部管理使用。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;鼠标消息,鼠标的点击、移动等产生的消息。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;键盘消息,键盘的按键消息。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;窗口消息,窗口管理消息。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;菜单消息,菜单管理消息。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;命令消息等。&nbsp;<BR>&nbsp;<BR>1.3&nbsp;&nbsp;窗口过程和窗口类&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;窗口过程是用来处理窗口消息的函数过程。对于同一类型的控件,&nbsp;<BR>其窗口过程一般是一样的。因此,系统一般利用窗口的窗口类名来区分&nbsp;<BR>不同的窗口类并调用不同的窗口过程。由于几乎每一个主窗口均和其他&nbsp;<BR>窗口有着不同的窗口过程,因此,在&nbsp;MiniGUI&nbsp;中,窗口类的概念只存&nbsp;<BR>在于控件和窗片中。对于主窗口来说,其窗口过程在建立主窗口时指定,&nbsp;<BR>而对控件和窗片来说,则在注册窗口类时指定,而在建立窗片或控件时&nbsp;<BR>指定所属窗口类。&nbsp;<BR>&nbsp;<BR>1.4&nbsp;&nbsp;句柄&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;句柄是&nbsp;MiniGUI&nbsp;用来标识对象的标识符。句柄和指针概念类似,但&nbsp;<BR>它不一定是指针值。利用句柄,MiniGUI&nbsp;将系统变量从应用项目中分离了&nbsp;<BR>出来,因为程序员只能通过句柄访问对象,因而就没有利用指针是可能发&nbsp;<BR>生的因非法访问而导致的数据不一致问题。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;MiniGUI&nbsp;中,窗口、控件、设备环境、菜单、图标等均使用句柄&nbsp;<BR>访问。&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;166.111.53.193]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -