OPEN+第部分+MiniGUI程序设计

上传人:012****78 文档编号:125685226 上传时间:2020-03-19 格式:PPT 页数:144 大小:1.26MB
返回 下载 相关 举报
OPEN+第部分+MiniGUI程序设计_第1页
第1页 / 共144页
OPEN+第部分+MiniGUI程序设计_第2页
第2页 / 共144页
OPEN+第部分+MiniGUI程序设计_第3页
第3页 / 共144页
OPEN+第部分+MiniGUI程序设计_第4页
第4页 / 共144页
OPEN+第部分+MiniGUI程序设计_第5页
第5页 / 共144页
点击查看更多>>
资源描述

《OPEN+第部分+MiniGUI程序设计》由会员分享,可在线阅读,更多相关《OPEN+第部分+MiniGUI程序设计(144页珍藏版)》请在金锄头文库上搜索。

1、目 录 1 第一章 嵌入式系统基本概念 2 第二章 Linux基础 5 第三章 嵌入式交叉编译环境 5 第四章 嵌入式开发环境的搭建 5 第五章 MiniGUI程序设计 6 第六章 嵌入式数据库 第5章 嵌入式开发环境的搭建 u嵌入式GUI概述 uMiniGUI DEMO uMiniGUI的编译和安装 uMiniGUI程序框架 uMiniGUI编程基础 GUI Graphics User Interface 图形用户界面 借助菜单 按 钮等标准界面元素和鼠标进行操作 帮助用户方便地向计算机 系统发出指令 并将系统运行的结果同样以图形方式显示给用 户 嵌入式GUI 轻型 占用资源少 高性能 高可

2、靠性 可配置 5 1嵌入式GUI概述 5 2 常用嵌入式GUI介绍 MicroWindows MiniGUI 其他图形平台 Qt Embedded等 MiniGUIMicroWindowsOpenGUIQT Embedded APIWin32风格X Win32风格私有QT C API是否完备是Win32不完善是是 函数库典型大小500K600K300K1 5M 可移植性很好很好只支持X86平台较好 函数库 跨平台交叉 编译困难 授权条款GPL 商业许可 证 MPL LGPLLGPLQPL GPL 商业 许可证 多进程支持好X支持好 Win32不支 持 不好好 健壮性 稳定性好很差一般差 多语种

3、支持独特的多字符 集支持功能 一般一般UNICODE 效率低 MiniGUIMicroWindowsOpenGUIQT Embedded 可配置和可定制 性 好 大量编 译配置选项 一般差差 系统资源消耗小较大 基于 UNIX套接字 进程间通讯 最小 不支持 多进程 最大 C 效率好较差最好差 操作系统支持Linux uClin ux uC OSII VxWorks等 LinuxDos Linux QNX Linux 硬件平台支持X86 ARM MIPS PowerPC X86 ARM MIPS X86X86 ARM 主要应用区域中国大陆 台湾地区 美国 及国内少 数用户 欧洲欧美 韩国 5

4、3 MiniGUI概述 MiniGUI 原是由魏永明主 持和开发的一个自由软件项目 现由北京飞漫软件技术 有限公司维护并开展后续开发 遵循GPL 条款 支持操作系统Linux uClinux VxWorks eCos uC OS II pSOS ThreadX 等 MiniGUI 为应用程序定义了一组轻量级的窗口和图形设 备接口 手机 PDA MiniGUI 典型应用 数字媒体 机顶盒 MiniGUI 典型应用 工控仪表 MiniGUI 典型应用 其他 MiniGUI 典型应用 miniGUI系统架构 程序架构分析 结构体初始化 创建窗口 显示窗口 消息循环 清理资源 MSG CREATE M

5、SG PAINT MSG CLOSE 消息处理函数 本机执行环境 内核 2 6 22 桌面 KDE 底层图形接口 framebuffer 调试接口qvfb 1 0 miniGUI版本 1 6 2 Hello miniGUI DEMO 1 头文件 前四个为必须 include include include include include common h 包括 MiniGUI常用的宏及数据类型的定义 minigui h 包含了全局的和通用的接口函数以及某些杂项函数的定义 gdi h包含了绘图函数的接口的定义 window h 包含了窗口有关的宏 数据类型 数据结构的定义以及函数接口 声明 co

6、ntrol h 包含了 所有内建控件的接口定义 程序架构分析 2 MiniGUI程序入口点 int MiniGUIMain int argc const char argv 函数原形 int MiniGUIMain int argc const char argv 参数argc 和argv 与C 程序main 函数的参数argc 和argv 的含义 是一样的 分别为命令行参数个数和参数字符串数组指针 main 函数已经在 MiniGUI的函数库中定义了 该函数在进行一些 MiniGUI的初始化工作之后调用 MiniGUIMain函数 程序架构分析 3 设置主窗口属性 MAINWINCREATE

7、 结构描述 窗口信息 CreateInfo dwStyle WS VISIBLE WS BORDER WS CAPTION 风格 CreateInfo dwExStyle WS EX NONE CreateInfo spCaption Hello world 标题名 CreateInfo hMenu 0 无菜单 CreateInfo hCursor GetSystemCursor 0 CreateInfo hIcon 0 CreateInfo MainWindowProc HelloWinProc 消息处理过程函数 CreateInfo lx 0 CreateInfo ty 0 CreateI

8、nfo rx 320 CreateInfo by 240 CreateInfo iBkColor COLOR lightwhite CreateInfo dwAddData 0 CreateInfo hHosting HWND DESKTOP 托管窗口 程序架构分析 3 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo dwStyle WS VISIBLE WS BORDER WS CAPTION 设置主窗口风格 这里把窗口设为初始可见的 并具有边框 和标题栏 CreateInfo deExStyle WS EX NONE 设置主窗口的扩展风格 该窗口没有扩展风格 C

9、reateInfo spCaption HelloWorld 设置主窗口的标题为 HelloWorld 程序架构分析 3 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo hMenu 0 设置主窗口的主菜单 该窗口没有主菜单 CreateInfo hCursor GetSystemCursor 0 设置主窗口的光标为系统缺省光标 CreateInfo hIcon 0 设置主窗口的图标 该窗口没有图标 程序架构分析 3 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo iBkColor PIXEL lightwhite 设置主窗口的背景色为白色

10、 PIXEL lightwhite 是 MiniGUI 预定义的象素值 CreateInfo dwAddData 0 设置主窗口的附加数据 该窗口没有附加数据 CreateInfo hHosting HWND DESKTOP 设置主窗口的托管窗口为桌面窗口 程序架构分析 3 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo MainWindowProc HelloWinProc 设置主窗口的窗口过程函数为 HelloWinProc 所有发往该窗 口的消息由该函数处理 CreateInfo lx 0 CreateInfo ty 0 CreateInfo rx 320 C

11、reaetInfo by 240 设置主窗口在屏幕上的位置 该窗口左上角位于 0 0 右下 角位于 320 240 程序架构分析 4 创建和显示主窗口 创建主窗口 hMainWnd CreateMainWindow CreateMainWindow创建主窗口 参数是指向 MAINWINCREATE结构的指针 CreateInfo 返回值为所创建的主窗口的句柄 MAINWINCREATE 结构描述 一个主窗口的属性 显示主窗口 ShowWindow hMainWnd SW SHOWNORMAL 显示窗口在屏幕上 程序架构分析 5 进入消息循环 MiniGUI 对 MiniGUI程序维护一种名叫消

12、息队列的数据结构 在发生事件之后 MiniGUI 将事件转换为一个消息 并将消息 放入目标程序的消息队列之中 应用程序现在的任务就是执行 消息循环代码 不断地从消息队列中取出消息 进行处理 消息循环 while GetMessage DispatchMessage 程序架构分析 6 窗口过程函数 static int HelloWinProc HWND hWnd int message WPARAM wParam LPARAM lParam HDC hdc RECT rc char msg text 30 switch message 创建时发送的消息 用来做初始化处理 这里是初始化字符串内容

13、 case MSG CREATE break 窗口绘画时发送的消息 用来在界面绘图或者输出文字 注意这里的return 0 表明不需要进入默认处理函数中 case MSG PAINT printf BeginPaint n hdc BeginPaint hWnd TextOut hdc 10 50 Hello world EndPaint hWnd hdc printf EndPaint n return 0 结束时一些处理函数 主要是销毁主窗口和发送quit消息以退出消息循环 case MSG CLOSE DestroyMainWindow hWnd PostQuitMessage hWnd

14、 return 0 return DefaultMainWinProc hWnd message wParam lParam 程序架构分析 6 窗口过程函数 在 helloworld c程序中 窗口过程是HelloWinProc CreateMainWindow 函数根据 MAINWINCREATE 结构类型的参 数中指定的窗口过程创建主窗口 窗口过程函数由 MiniGUI进行调用 窗口过程函数不予处理的消息应该传给 DefaultMainWinProc 函数进行缺省处理 程序架构分析 SendMessage MSG CREATE CREATEMAINWINDOW MSG PAINT hWnd

15、 SHOWWINDOW PostMessage MSG PAINT GetMessageWndProc 主窗口创建时消息动作过程 程序架构分析 MSG CLOSE hWnd MSG Derstroy hWnd GetMessageWndProc 底层事件响应 用户单击关闭按钮 DestroyMainWindow PostQuitWindow hWnd MSG QUIT QUIT 退出 主窗口销毁时消息动作过程 程序架构分析 7 屏幕输出 MSG PAINT消息 进行屏幕输出 case MSG PAINT hdc BeginPaint hWnd TextOut hdc 60 60 Hello w

16、orld EndPaint hWnd hdc return 0 程序架构分析 8 程序的退出 单击窗口右上角关闭按钮 发送 MSG CLOSE 消息 case MSG CLOSE DestroyMainWindow hWnd PostQuitMessage hWnd return 0 程序架构分析 9 程序编译 MiniGUI Threads 模式 gcc o helloworld helloworld c lpthread lminigui pthread 线程库 minigui minigui支持库 程序架构分析 10 程序执行 helloworld 程序架构分析 MiniGUI函数库组成 libminigui 核心库 标准控件 libmgext 扩展库 一些有用的控件 libvcongui 虚拟控制台窗口 MiniGUI运行模式 MiniGUI Threads MiniGUI Lite MiniGUI Standalone 注意 以下讲述基于MiniGUI1 6 MiniGUI 2 0 x 中Lite模式升级为Processes 模式 默认模式是MiniGUI Threads 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号