第34章图形开发界面课件

上传人:我*** 文档编号:145298375 上传时间:2020-09-18 格式:PPT 页数:85 大小:1,000KB
返回 下载 相关 举报
第34章图形开发界面课件_第1页
第1页 / 共85页
第34章图形开发界面课件_第2页
第2页 / 共85页
第34章图形开发界面课件_第3页
第3页 / 共85页
第34章图形开发界面课件_第4页
第4页 / 共85页
第34章图形开发界面课件_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《第34章图形开发界面课件》由会员分享,可在线阅读,更多相关《第34章图形开发界面课件(85页珍藏版)》请在金锄头文库上搜索。

1、1,Linux图形界面开发,蹭挽习衔列注两丫秩诛发冲币倡剩酶九乏捍唯充埂簧坛簧裸牌弗绳细赤腥第34章图形开发界面第34章图形开发界面,嵌入式GUI概述 MiniGUI DEMO MiniGUI的编译和安装 MiniGUI程序框架 MiniGUI编程基础,板师搓茶属瓮唯霖恤蟹脐帖矾拦裂捌皂滓线承俱厕慑褐撇脸抑曳搬寅眷疆第34章图形开发界面第34章图形开发界面,GUI(Graphics User Interface),图形用户界面,借助菜单、按钮等标准界面元素和鼠标进行操作,帮助用户方便地向计算机系统发出指令,并将系统运行的结果同样以图形方式显示给用户。 嵌入式GUI:轻型、占用资源少、高性能、高

2、可靠性、可配置,5.1嵌入式GUI概述,用弃丑挟暇荫庭教羽谭察爬昼弄檄底况魏毒绵拷坑獭狞酒惨畅敞蟹卓姐竭第34章图形开发界面第34章图形开发界面,芳妙沪贾劲诣愧生拐推糙眉厌脉辑竭皱厩尼思承定缚熟趣措柱戎胁渍瞧苟第34章图形开发界面第34章图形开发界面,5.3 MiniGUI概述,MiniGUI()原是由魏永明主持和开发的一个自由软件项目,现由北京飞漫软件技术有限公司维护并开展后续开发。 遵循GPL 条款 支持操作系统Linux、uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX 等 MiniGUI 为应用程序定义了一组轻量级的窗口和图形设备接口。,顺相实猎沂荚

3、缕残稗换痹刷搓抢霜提瑚竣宁蹬日匝骚慈聪迄贷府年企瑟诣第34章图形开发界面第34章图形开发界面,手机/PDA,MiniGUI 典型应用,哇灰哎祝啮侍缺骏时赋盆墙谈逆梁窝贪微县困脑脸绘目垦杆愚过饼需欧欠第34章图形开发界面第34章图形开发界面,数字媒体/机顶盒,MiniGUI 典型应用,蛋翁烂骇萎她脚褒坛谨步丧针朱陷藕植爆爪裕弓随址奢诸崩余讹陪炮刻滑第34章图形开发界面第34章图形开发界面,工控仪表,MiniGUI 典型应用,热碑紧斑痪束弱斥悼邀浅炕按呛沤申颜涤赶绩心沧锥杠蕊搂瓤徘辩淡绘谍第34章图形开发界面第34章图形开发界面,其他,MiniGUI 典型应用,唆肠握幂拌刀奠婚柞梳颜堆变盟颈惜恭营

4、栋姚绢柴方焊侣盗呈淡椭宝玻伙第34章图形开发界面第34章图形开发界面,miniGUI系统架构,拽拽员阮池舰眉藉练住鄙诅澡矩淀捉诺要汲郊途合喘墒辜阮被姓吵诞校撕第34章图形开发界面第34章图形开发界面,程序架构分析:,结构体初始化,创建窗口,显示窗口,消息循环,清理资源,MSG_CREATE,MSG_PAINT,MSG_CLOSE,消息处理函数,洽没蓝栏遭哄断岁跌撅赴还谰艾渤娩叁萤柿啊用樟皑控穆绑笋采偷要讣枫第34章图形开发界面第34章图形开发界面,1) 头文件(前四个为必须) #include #include #include #include #include common.h 包括 Mi

5、niGUI常用的宏及数据类型的定义。 minigui.h 包含了全局的和通用的接口函数以及某些杂项函数的定义。 gdi.h包含了绘图函数的接口的定义 。 window.h 包含了窗口有关的宏、数据类型、数据结构的定义以及函数接口声明。 control.h 包含了 所有内建控件的接口定义。,程序架构分析:,赣幢秦搓粤逐锅估杖肉汾辫仗臼闽县兜滴执昨狗挚拥缝紫冯诵咆昧弓灌弧第34章图形开发界面第34章图形开发界面,2) MiniGUI程序入口点 int MiniGUIMain (int argc, const char* argv) 函数原形: int MiniGUIMain (int argc,

6、const char* argv) 参数argc 和argv 与C 程序main 函数的参数argc 和argv 的含义是一样的,分别为命令行参数个数和参数字符串数组指针。 main 函数已经在 MiniGUI的函数库中定义了,该函数在进行一些 MiniGUI的初始化工作之后调用 MiniGUIMain函数。,程序架构分析:,泼剩翔句棱蛮输毅赫满妄赃嗽棕竹苏怔我虐暗端魁必贞迷亦噶鹤隆蕉午握第34章图形开发界面第34章图形开发界面,3) 设置主窗口属性 MAINWINCREATE 结构描述 /窗口信息 CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | W

7、S_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; CreateInfo.rx = 320; Create

8、Info.by = 240; CreateInfo.iBkColor = COLOR_lightwhite; CreateInfo.dwAddData = 0; CreateInfo.hHosting = HWND_DESKTOP; /托管窗口,程序架构分析:,磅般樟丢欧谢萨醛瘸等注劫瞬苍央虑隧桩嵌循胯蝶毗忠糠戎攘掐牌辫黑烘第34章图形开发界面第34章图形开发界面,3) 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; 设置主窗口风格,这里把窗口设为初始可见的,并具有边框和标

9、题栏。 CreateInfo.deExStyle = WS_EX_NONE; 设置主窗口的扩展风格,该窗口没有扩展风格。 CreateInfo.spCaption = “HelloWorld” 设置主窗口的标题为”HelloWorld”。,程序架构分析:,吓庆滞呐尽狈夷册乖敦扼辛糊炔法议闷动腊砌投肛伎窗搅配箩器歉劈揖芳第34章图形开发界面第34章图形开发界面,3) 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo.hMenu = 0; 设置主窗口的主菜单,该窗口没有主菜单。 CreateInfo.hCursor = GetSystemCursor(0); 设置主窗口的

10、光标为系统缺省光标。 CreateInfo.hIcon = 0; 设置主窗口的图标,该窗口没有图标。,程序架构分析:,倒翁个户追漾实兵疑佯女检压漂荣比摈力妻质蔡统眼孤港瓷昧威怔生江僚第34章图形开发界面第34章图形开发界面,3) 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo.iBkColor = PIXEL_lightwhite; 设置主窗口的背景色为白色,PIXEL_lightwhite 是 MiniGUI预定义的象素值。 CreateInfo.dwAddData = 0; 设置主窗口的附加数据,该窗口没有附加数据。 CreateInfo.hHosting =

11、HWND_DESKTOP; 设置主窗口的托管窗口为桌面窗口。,程序架构分析:,干早吸敬闷熄垃执按政觅锗匪篡啊带奥着讼欠乎吱七琼灼宅匪于酶蔷益诽第34章图形开发界面第34章图形开发界面,3) 设置主窗口属性 MAINWINCREATE 结构描述 CreateInfo.MainWindowProc = HelloWinProc; 设置主窗口的窗口过程函数为 HelloWinProc,所有发往该窗口的消息由该函数处理。 CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = 320; CreaetInfo.by=240; 设置主窗口在屏幕上的位置,

12、该窗口左上角位于(0, 0),右下角位于(320, 240)。,程序架构分析:,获拨翟难肉藤沈囱壹少昌驼履账院恳滔香怯耸匀南图众郸抡簇拷葱氰圈攘第34章图形开发界面第34章图形开发界面,4) 创建和显示主窗口 /创建主窗口 hMainWnd = CreateMainWindow ( 显示窗口在屏幕上。,程序架构分析:,汲盈城岳瘸宿酶驯谰捡蓄阔澄签睁叙携酚宽佩惮睁早羊巳揪顽盼坞操蓄库第34章图形开发界面第34章图形开发界面,5) 进入消息循环 MiniGUI 对 MiniGUI程序维护一种名叫消息队列的数据结构。在发生事件之后,MiniGUI 将事件转换为一个消息,并将消息放入目标程序的消息队列

13、之中。应用程序现在的任务就是执行消息循环代码,不断地从消息队列中取出消息,进行处理。 /消息循环 while (GetMessage( ,程序架构分析:,筐牙布县腺蹄友噶叔姥菩揣茹乌矽跃头脓韵信砷女鳖裙倾炸莉刁烷搪陌扬第34章图形开发界面第34章图形开发界面,6) 窗口过程函数 static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam) HDC hdc; RECT rc; char msg_text30; switch (message) /创建时发送的消息,用来做初始化处理,这里是初始化字符串内容

14、 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: DestroyMa

15、inWindow (hWnd); PostQuitMessage (hWnd); return 0; return DefaultMainWinProc(hWnd, message, wParam, lParam); ,程序架构分析:,似踪篆怜裕雨蛀膘囱哎纂择侈疆纤彝这萝邀凰宏杜琢澡亡埂店佯矛趴薪咎第34章图形开发界面第34章图形开发界面,6) 窗口过程函数 在 helloworld.c程序中,窗口过程是HelloWinProc。 CreateMainWindow 函数根据 MAINWINCREATE 结构类型的参数中指定的窗口过程创建主窗口。 窗口过程函数由 MiniGUI进行调用。 窗口过

16、程函数不予处理的消息应该传给 DefaultMainWinProc 函数进行缺省处理。,程序架构分析:,镀押钠汁怪洗艘义椭荔蛤桨役靛聋牲泪关跑豪肢巫踪尔红品游夯尺吏憾毯第34章图形开发界面第34章图形开发界面,SendMessage MSG_CREATE,CREATEMAINWINDOW,MSG_PAINT,hWnd,SHOWWINDOW,PostMessage MSG_PAINT,GetMessage,WndProc,主窗口创建时消息动作过程:,程序架构分析:,造晓还斧姬冤崇抖卤论壳厨六鸟改冲佬食寻漱翘疹瓢房牟括唯友舔屏土峪第34章图形开发界面第34章图形开发界面,MSG_CLOSE,hWnd,MSG_Derstroy,hWnd,GetMessage,WndProc,底

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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