图形用户接口模块开发指南.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《图形用户接口模块开发指南.ppt》由会员分享,可在线阅读,更多相关《图形用户接口模块开发指南.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Professional Responsive Concentrative Hello China always fly with you基于基于Hello China V1.6By Garry.Xin2009-04-10嵌入式操作系统:嵌入式操作系统:Hello China V1.6图形用户接口模块开发指南图形用户接口模块开发指南基于基于Hello China V1.6By Garry.Xin2009-04-102023/5/29Page1Email to:Professional Responsive Concentrative Hello China always fly with yo
2、uHello ChinaHello ChinaSince I was a boy,Since I was a boy,I want to be a huge hero,I want to be a huge hero,to save human beings.to save human beings.When I was a teenage,When I was a teenage,I want to be a mathematician,I want to be a mathematician,to solve most complicated questions.to solve most
3、 complicated questions.When I was twenties,When I was twenties,I want to be a good husband,I want to be a good husband,with beautiful wife and lovely baby.with beautiful wife and lovely baby.Now I am thirties,Now I am thirties,not a hero,not a hero,not a mathematician,not a mathematician,only a husb
4、and.only a husband.But I am very confused,But I am very confused,what I want to be,what I want to be,and how to be?and how to be?2023/5/29Page2Email to:Professional Responsive Concentrative Hello China always fly with you目录Hello China GUI模块的最新进展 Hello China V1.6的组成模块 辅助处理工具介绍 Hello China GUI模块开发指南 G
5、UI模块的内部机制简介 GUI应用程序开发指南2023/5/293Email to:Professional Responsive Concentrative Hello China always fly with youHello China GUI模块的初始启动界面2023/5/294Email to:Professional Responsive Concentrative Hello China always fly with youHello China GUI模块的消息框和按钮控件2023/5/295Email to:Professional Responsive Concentr
6、ative Hello China always fly with youHello China GUI模块的内嵌程序-日历2023/5/296Email to:Professional Responsive Concentrative Hello China always fly with you目录Hello China GUI模块的最新进展 Hello China V1.6的组成模块 辅助处理工具介绍 Hello China GUI模块开发指南 GUI模块的内部机制简介 GUI应用程序开发指南2023/5/297Email to:Professional Responsive Conce
7、ntrative Hello China always fly with youHello China V1.6的组成模块Reserved(BOOTSECT.BIN/REALINIT.BIN)0 x00100000(1M)MINIKER.BIN0 x00110000(1M+64K)MASTER.BIN0 x00130000(1M+192K)HCGUI.BIN0 x00140000(1M+256K)点阵ASCII码库点阵汉字库0 x00150000(1M+320K)0 x00160000(1M+576K)其它静态加载模块0 x00000000(内存起始)1、BOOTSECT.BIN和和REALI
8、NIT.BIN为系统初始为系统初始化模块,运行在实模式下。一旦系统转换到保护模化模块,运行在实模式下。一旦系统转换到保护模式,这两个模块就不再起作用;式,这两个模块就不再起作用;2、1M物理内存预留,用作物理内存预留,用作BIOS代码和数据、字符代码和数据、字符界面显存等;界面显存等;3、MINIKER.BIN为一个字符界面驱动程序,后续为一个字符界面驱动程序,后续将逐步淘汰;将逐步淘汰;4、MASTER.BIN是操作系统核心代码模块,占据是操作系统核心代码模块,占据128K内存;内存;5、HCGUI.BIN是图形用户界面代码模块,当前尚是图形用户界面代码模块,当前尚未开发完毕,占据未开发完毕
9、,占据64K内存。后续可能会进一步增大,内存。后续可能会进一步增大,这时候,其它模块需要顺延调整;这时候,其它模块需要顺延调整;6、点阵汉字库和图标库,是、点阵汉字库和图标库,是HCGUI模块使用的资模块使用的资源库,没有任何代码,只是存储了点阵汉字、系统源库,没有任何代码,只是存储了点阵汉字、系统常用的显示图标等资源;常用的显示图标等资源;7、其它模块,比如网络模块等,放在图标库之后。、其它模块,比如网络模块等,放在图标库之后。2023/5/298Email to:Professional Responsive Concentrative Hello China always fly wit
10、h you目录Hello China GUI模块的最新进展 Hello China V1.6的组成模块 辅助处理工具介绍 Hello China GUI模块开发指南 GUI模块的内部机制简介 GUI应用程序开发指南2023/5/299Email to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6开发辅助工具工具名称工具名称用途用途实例实例PROCESS.EXE对DLL文件进行处理,转换为Hello China可加载的二进制模块。G:I386process-i maste
11、r.dll-o master.bin-i:指定待处理的DLL模块名称;-o:处理后输出的模块名称APPEND.EXE把两个二进制模块进行合并,合并为一个文件,以便于加载。该程序只是把两个文件连接在一起(以64K为边界)。G:I386append-s master.bin-a hcngui.bin上述命令把HCNGUI.BIN和MASTER.BIN连接在一起,其中MASTER.BIN在前。最后输出的文件名称,仍然是master.bin。VFMAKER.EXE创建一个可启动虚拟机的软盘影像文件。G:I386vfmakerWriting to virtual floppy now.Create vi
12、rtual floppy image file(vfloppy.vfd)successfully!该程序合并Hello China的四个启动文件,按照一定格式写入到vfloppy.vfd文件中。FMTLDRF.COM用于格式化一张可启动物理计算机的软盘。该程序与VFMAKER.EXE程序差不多,所不同的是,该程序格式化一张实际的物理软盘,用于启动物理计算机。2023/5/2910Email to:Professional Responsive Concentrative Hello China always fly with you目录Hello China GUI模块的最新进展 Hello
13、China V1.6的组成模块 辅助处理工具介绍 Hello China GUI模块开发指南 GUI模块的内部机制简介 GUI应用程序开发指南2023/5/2911Email to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块开发指南步骤一:采用步骤一:采用VC 6.0,打开,打开HCNGUI.DSW项目,在其中编写功能代码。这个过程跟开发项目,在其中编写功能代码。这个过程跟开发Windows程序一样。完毕后,编译为程序一样。完毕后,编译为Release版本
14、,形成版本,形成HCNGUI.DLL库。此过程后面会做进一步介绍;库。此过程后面会做进一步介绍;步骤二:把上述步骤二:把上述HCNGUI.DLL文件,拷贝到一个工作目录下(也可以直接以文件,拷贝到一个工作目录下(也可以直接以Release目录为工作目目录为工作目录,这样就可避免拷贝操作),运行录,这样就可避免拷贝操作),运行PROC.BAT批处理命令,即可生成批处理命令,即可生成VFLOPPY.VFD文件;文件;步骤三:用上述生成的步骤三:用上述生成的VFD文件,启动虚拟机即可。建议采用文件,启动虚拟机即可。建议采用Virtual PC做试验,做试验,VMWare在支持在支持图形模式方面存在一
15、定问题(或许需要安装一些额外的插件),因此没有在图形模式方面存在一定问题(或许需要安装一些额外的插件),因此没有在VMWare上调试过。上调试过。PROC.BAT批处理文件内容:批处理文件内容:del master.bin /删除掉旧的MASTER.BIN文件。del hcngui.bin /删除掉旧的HCNGUI.BIN文件。process-i master.dll-o master.bin /处理MASTER.DLL文件,输出为MASTER.BIN模块。process-i hcngui.dll-o hcngui.bin /处理HCNGUI.DLL文件,输出为HCNGUI.BIN模块。app
16、end-s master.bin-a hcngui.bin /把HCNGUI.BIN模块跟MASTER.BIN模块合并,输出合并后的MASTER.BIN模块。Vfmaker /创建虚拟软盘影像文件。2023/5/2912Email to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块开发注意事项主意事项:主意事项:1、确保BOOTSECT.BIN/REALINIT.BIN/MINIKER.BIN/MASTER.BIN等四个文件,都位于工作目录下。VFMaker
17、程序读取这四个文件,以生成可启动虚拟软盘文件(VFLOPPY.VFD);2、当前工作目录下的MASTER.DLL文件,是最新版本的Hello China内核模块,不要删除。若需要更新内核模块,则需按照跟HCNGUI.DLL同样的操作顺序,编译生成release的MASTER.DLL后,重新拷贝到工作目录;3、PROC.BAT文件,实际上就是执行了APPEND.EXE和PROCESS等程序,把各个二进制模块进行统一处理,并直接执行VFMaker,生成可用的虚拟软盘影像。若对这些工具的使用方法比较熟悉,可一步一步的执行生成VFLOPPY.VFD文件,以进一步熟悉其中的过程。2023/5/2913E
18、mail to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块二进制影像和工具包Hello China V1.6二进制影像文件,包含工作目录中的所有二进制模块和开发支持工具。可直接拷贝到工作目录下使用。PROC.BAT是批处理文件,对于GUI模块的开发,只需要采用最新编译的RELEASE版本HCNGUI.DLL,替代该目录下的相同文件,然后运行PROC.BAT,即可生成VFLOPPY.VFD。2023/5/2914Email to:Professional R
19、esponsive Concentrative Hello China always fly with youHello China V1.6 GUI模块当前源代码结构目录目录用途用途CTRL通用控件代码目录DRAW通用画图代码目录INCLUDE所有头文件存储目录KAPI支持库和系统调用包装代码KTHREADGUI核心线程代码PICTURE不同格式的图形显示代码RES字库、位图等资源目录VIDEO显示器驱动程序目录WINDOW窗口机制实现代码WORD汉字/英文显示支持代码APPGUI自带的常用程序文件文件用途用途GUIENTRY.CPP模块入口源文件2023/5/2915Email to:Pr
20、ofessional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块加载和初始化过程GUI模块的加载过程:模块的加载过程:第一步:操作系统核心加载到内存中,完成初始化后,会初始化静态模块(GUI模块作为静态模块实现),目前只有GUI一个静态模块;第二步:GUI模块的入口例程被调用,这时候,GUI模块应该执行初始化代码,完成必要的初始化任务,以准备后续执行;第三步:GUI模块初始化后,操作系统核心会创建系统支持线程,比如系统空闲线程(IDLE线程)、CPU统计线程和shell线程等;第四
21、步:核心支撑线程创建完毕后,整个操作系统初始化完毕,此时系统控制权转移到shell线程,可执行用户输入操作。注意:操作系统核心对象的初始化和驱动程序的加载和初始化,是在GUI模块初始化之前完成的。2023/5/2916Email to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块的初始化GUI模块的初始化代码:模块的初始化代码:extern CBOOL _init()if(!Video.Initialize(&Video)goto _FAILED;if(!G
22、lobalParams.Initialize(&GlobalParams,&Video)goto _FAILED;if(!WindowManager.Initialize(&WindowManager)goto _FAILED;ReplaceShell(RAWIT);/Set RAWIT as all system messages gate of GUI module.return TRUE;_FAILED:return FALSE;初始化代码完成的任务:初始化代码完成的任务:1、初始化显示器对象(、初始化显示器对象(Video对象),以支持图对象),以支持图形输出。当前版本中,显示器被初始
23、化为形输出。当前版本中,显示器被初始化为1024*768*32模式,模式,flat显存模式;显存模式;2、初始化全局参数对象,比如系统颜色、窗口、初始化全局参数对象,比如系统颜色、窗口标题栏高度等全局参数;标题栏高度等全局参数;3、初始化窗口管理对象,以实现窗口机制的支、初始化窗口管理对象,以实现窗口机制的支撑;撑;4、替换缺省的、替换缺省的shell为为RAWIT(RAW input thread)。缺省的)。缺省的SHELL是基于字符界面的是基于字符界面的shell,在,在MASTER.BIN模块中实现;模块中实现;5、返回、返回TRUE,以指示系统模块初始化成功。,以指示系统模块初始化成
24、功。注:注:1、初始化代码在、初始化代码在GUIENTRY.CPP文件中;文件中;2、RAWIT代码,在代码,在KTHREAD目录下的目录下的RAWIT文件中实现。文件中实现。2023/5/2917Email to:Professional Responsive Concentrative Hello China always fly with youHello China V1.6 GUI模块的单一功能开发所谓单一功能开发,指的是完成显示汉字、显示所谓单一功能开发,指的是完成显示汉字、显示BMP/JPG图形、显示光标图形、显示光标/鼠标、鼠标、3D/光光照效果等照效果等GUI支撑功能的开发。
25、这些功能重点在图形编程和算法上,无须涉及到用户交支撑功能的开发。这些功能重点在图形编程和算法上,无须涉及到用户交互,因此可按照下列步骤进行:互,因此可按照下列步骤进行:第一步:把RAWIT入口函数(RAWIT函数)中所有代码删除,添加上单一功能代码,重新编译即可。实际上,在RAWIT函数被调用前,系统所有功能都已经初始化完毕了;第二步:在开发中,可直接调用DrawPixel、DrawLine、DrawRectangle等图形输出函数。这些函数的第一个参数,是Video对象(一个全局对象)指针,另外的参数含义十分明了;第三步:对于常用的系统颜色,比如窗口标题、控件表面等,可直接引用GlobalP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 用户 接口 模块 开发 指南
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内