没有合适的资源?快使用搜索试试~ 我知道了~
Minigui教程1
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86355358/bg1.jpg)
Minigui 教程
前言
本文档内容意在带您快速了解 minigui 相关内容,您无需深究 code 也能够
迅速了解各接口的使用逻辑。其余具体内容则需要您在后续工作中逐步体会。文
档内容大致分为 minigui 简易架构介绍、常用功能接口、离线语音项目中的 GUI
框架和逻辑。
一、搭建工作环境
本内容请移步指相应的介绍文档,如 ministudio 的安装、使用等。目前相
应内容放在个人 Nas 盘中。如图:
二、Minigui 部分目录结构
温馨提示:最初您只需要重点关注 src 的内容即可。
* doc
* 通过 Doxygen 自动生成的 API 参考手册,包括 HTML(doc/html)、man
(doc/man)和 Latex(doc/latex)、RTF(doc/rtf)格式。
* 发表在 IBM developerWorks 中国站点上关于 MiniGUI 的文章
(doc/articles)。
![](https://csdnimg.cn/release/download_crawler_static/86355358/bg2.jpg)
* etc
MiniGUI 的配置文件。目前有用于两个风格的配置文件。
* examples
Doxygen 使用的一些示例代码片段。出现在最终的 API 参考手册中。
* ext
MiniGUIExt 库的源代码
* ext/control:MonthCalendar、SpinBox、CoolBar、ListView、TreeView 等控
件。
* ext/image:动画 GIF 格式支持代码。
* ext/include:MiniGUIExt 库的外部头文件。
* ext/res:MiniGUIExt 库使用的一些资源文件。
* include
MiniGUI 库、MyWins 库、VCOnGUI 库的外部头文件。
* m4
Autoconf 脚本使用的自定义 m4 宏。
* mywindows
MyWins 库的源代码
* src
MiniGUI 库的源代码
* src/client:MiniGUI-Lite 版本的客户端特有源代码。
* src/control:MiniGUI 内建控件(static、button、listbox、edit 等等)。
* src/font:设备字体实现(RBF、VBF、TrueType、Type1 字体等)。
* src/font/in-core:嵌入代码的字体。
* src/gal:老的 GAL 引擎。
* src/gal/native:老的 FrameBuffer GAL 引擎。
* src/gdi:老的 GDI 接口实现。
* src/gui:窗口、菜单、加速建等 GUI 元素的实现。
* src/ial:IAL 引擎。
* src/ial/native:Console IAL 引擎。
* src/image:老的 GIF、JPG 图片格式支持,已废弃。
* src/ime:GB2312 输入法支持。
* src/include:库的内部头文件。
![](https://csdnimg.cn/release/download_crawler_static/86355358/bg3.jpg)
* src/include/control:控件相关的内部头文件。
* src/kernel:窗口管理、共享资源管理等的源代码。
* src/main:对 main 函数的封装。
* src/misc:杂项实现:配置文件读写、套接字操作、定点数学函数、通用流函
数、绘图同步等等。
* src/mybmp:各种图片格式的支持,包括 GIF、JPG、PNG、BMP 等等。
* src/newgal:新的 GAL 引擎。
* src/newgal/fbcon:基于 FrameBuffer 的新 GAL 引擎。
* src/newgal/dummy:哑 GAL 引擎。
* src/newgal/qvfb:基于 QVFB 的新 GAL 引擎。
* src/newgdi:新的 GDI 接口实现。
* src/server:MiniGUI-Lite 版本服务器端特有源代码。
* vcongui
VCOnGUI 函数库的实现。
您可以参考一下链接:
https://www.cnblogs.com/sankye/articles/2075228.html
http://www.doc88.com/p-786671878309.html
https://blog.csdn.net/doon/article/details/7091379
https://blog.csdn.net/10km/article/details/83550368
非常有用,包含很多知识点:
https://so.csdn.net/so/search?q=MiniGUI&t=blog&u=anyuliuxing&urw=
https://blog.csdn.net/anyuliuxing/article/details/90239014
其 次 , 对 于 您 最 初 的 界 面 设 计 工 作 , 您 应 该 重 点 关 注
<window.h> ,<static.h>,<common.h>这几个文件的内容。同时:static.h 只是 static 类
控件的头文件,您如果使用了其他类型控件,就去找相应类型名字的 .h 即可。
三、项目中 GUI 内容的介绍
日常工作常用的工程路径:
SDK\minigui-3.2-20210521\src\control (控件类)
![](https://csdnimg.cn/release/download_crawler_static/86355358/bg4.jpg)
SDK\minigui-3.2-20210521\src\newgal\xsail\spi
SDK\minigui-3.2-20210521\src\newgal\video.c
(minigui 刷新逻辑就在这里改,同时一定要去处理 video.c 的 GAL_UpdateRect()函数,如
何修改您可以参考之前 FreeRTOS 的修改内容,理论上可以直接 copy)
SDK\minigui-3.2-20210521\src\newgdi
SDK\minigui-3.2-20210521\include
1、菜单的基础框架(IRadio 为例,其余类似)
各界面才去统一的设计逻辑:每个菜单均对应一个.c/h 文件,文件名为他们
的各自的界面功能。(如 Minigui_App_InternetRadio.c 等)。
其中.c 文件的基本框架为:
1)Create_Minigui_IRadioWnd
2)ntCreateIradiomenuEx
3)Iradiomenu_onCreate
4)Iradiomenu_onKeyUp
5)IRadioWinProc
6)Set_MGui_IRadio_Content
上述的几个接口是每个界面都会具备的,他们兼顾着界面的 注册,刷新,处理
按键事件等功能。当然根据每个界面的不同需求会有其他额外的拓展。比如
switch_channel()等
接口简介:
1、Create_Minigui_IRadioWnd
这里对 ntCreateIradiomenuEx 接口的一个简单封装,因为你可能在创建洁面时
需要依据不同的状态来确定这个界面最开始是什么样的,那么你就可以使用这种
接口,并且日后在你新增的界面中,也建议使用这种逻辑。
2、ntCreateIradiomenuEx
3、Iradiomenu_onCreate
4、Iradiomenu_onKeyUp
5、IRadioWinProc
这几个接口都是通过 ministudio 生成的(其实在你熟悉之后,你可以自己手动
添加而脱离工具),他们的功能就是注册并初始化界面、创建界面、界面按键消
息处理、处理 migniui 方面的消息的接口。
6、Set_MGui_IRadio_Content
这里是封装好的逻辑,所有的界面通过这个接口去刷新这个界面。当然也存在局
部的特殊情况会跳过这个接口来刷新界面某些地方,但这种逻辑并不多。
![](https://csdnimg.cn/release/download_crawler_static/86355358/bg5.jpg)
2、常用的接口
上述框架的几个接口不再多赘述,您在使用时自然就会体会到接口的功能。
1)CreateWindow
这个接口可以创建控件和窗口,所以你需要熟悉这个接口内部的参数含义。
举个栗子:
Control_test =
CreateWindow(
CTRL_STATIC,
NULL,
WS_CHILD|WS_VISIBLE| SS_HOFFSET_VCENTER,
ID_AIRABLE_IRADIO_TEXT1,
0, 1, 320, 33,
self->hwnd,
0);
这里创建了一个 static 类 的控件,并将这个控件的句柄赋给 Control_test,
2)SetWindowBkColor 和 SetWindowElementAttr
这里是设置窗口、控件的背景色。
举个栗子:
SetWindowBkColor(Control_test,MGUI_NICENT_COLOR_BLACK);
这里将上述刚刚创建的 Control_test 控件设置一个黑色的背景。
SetWindowElementAttr(Control_test,WE_FGC_WINDOW,MGUI_NICENT_COLOR_WHITE);
这里将上述刚刚创建的 Control_test 控件设置一个白色的字体色[前景色]
3)Nicent_SetWindowFont_Not_Refresh 和 SetWindowFont
用来设置窗口、控件的字体风格。当然你的确认你使用的字体是已经被创建
的。
请注意 Nicent_SetWindowFont_Not_Refresh 是属于我们自己拓展的接口,
也建议你使用这个接口。使用 SetWindowFont 可能导致你的界面在你不需要刷新
的时候进行了刷新的动作。(刷新机制与消息机制有关,可以大概参考下面介绍
的 SendMessage 和 PostMessage 的区别)
4)SetWindowCallbackProc
这个接口用来设置某个界面在接受到 minigui 发送的消息时的 callback。
Minigui 这里使用的概念为 WinProc(窗口处理例程),在使用这个接口设置新
剩余27页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![avatar](https://profile-avatar.csdnimg.cn/555e1cf755b04fd7b2dfc03897574c0e_weixin_35788791.jpg!1)
西门镜湖
- 粉丝: 24
- 资源: 296
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- CBDL进行性能监控.rar
- BookStore.zip
- 数据库管理工具:dbeaver-ce-23.0.4-stable.x86-64.rpm
- Delphi 12 控件之DEV 改升级到D12.txt
- 数据库管理工具:dbeaver-ce-23.0.4-macos-x86-64.dmg
- 油猴儿crx扩展程序文件(Tampermonkey)
- 数据库管理工具:dbeaver-ce-23.0.4-macos-aarch64.dmg
- Python爬虫的基础知识、实例和反爬机制
- 数据库管理工具:dbeaver-ce-23.0.3-stable.x86-64.rpm
- 外部中断0计数数码管显示0-9.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0