### MiniGUI编程指南知识点概述
#### 一、MiniGUI简介
**MiniGUI**是由北京飞漫软件技术有限公司开发的一款轻量级图形用户界面支持系统,主要用于实时嵌入式操作系统。它是一个跨操作系统的图形界面支持系统,被定义为“针对嵌入式设备的、跨操作系统的图形界面支持系统”,属于一种“嵌入式图形中间件”。MiniGUI能够运行在多种操作系统上,如Linux/uClinux、eCos、VxWorks、pSOS、ThreadX、Nucleus、uC/OS-II、OSE以及Win32平台。
#### 二、MiniGUI的版本与授权
- **稳定版本**:MiniGUI可免费下载的稳定版本是MiniGUI-STRV1.6.2和MiniGUI V1.3.3,遵循GPL协议。
- **下载地址**:可以从北京飞漫软件技术有限公司网站的“下载”区(http://www.minigui.com/download/cindex.shtml)获取上述GPL版本的源代码、开发文档及示例程序。
- **商业授权**:如果想利用MiniGUI开发专有或商业软件,则需购买商业授权。飞漫软件将为购买授权的用户提供最新版本的产品及技术支持。
#### 三、MiniGUI编程基础
- **事件驱动编程**:MiniGUI采用事件驱动模型,程序通过响应各种事件来完成相应的操作。
- **运行模式**:MiniGUI支持三种运行模式:
- 单进程模式(MiniGUI-Single):所有的MiniGUI API调用都在同一个进程中执行。
- 多进程模式(MiniGUI-Multi):MiniGUI API调用分布在多个进程中执行。
- 进程间通信模式(MiniGUI-Processes):使用IPC机制实现跨进程的MiniGUI API调用。
#### 四、简单的MiniGUI程序结构
1. **头文件**:包含必要的MiniGUI头文件,如`minigui.h`。
2. **程序入口点**:通常是一个`main`函数,初始化MiniGUI环境并启动消息循环。
3. **加入层**:在MiniGUI-Processes模式下需要添加特定的初始化代码。
4. **创建和显示主窗口**:使用`mgCreateWindow`函数创建窗口,并使用`mgShowWindow`显示窗口。
5. **消息循环**:通过`mgStartMessageLoop`启动消息循环。
6. **窗口过程函数**:处理接收到的消息。
7. **屏幕输出**:可以使用MiniGUI提供的图形接口进行屏幕绘制。
8. **程序退出**:通过`mgStopMessageLoop`结束消息循环并清理资源。
#### 五、编译与运行
- **编译**:使用标准的编译命令(如gcc)编译MiniGUI程序。
- **链接**:MiniGUI提供了动态库和静态库供链接使用。
- **Automake/Autoconf脚本**:为了简化跨平台编译流程,开发者可以编写Automake/Autoconf脚本来自动配置和构建项目。
#### 六、窗口和消息
- **窗口系统**:MiniGUI中的窗口系统管理窗口的创建、显示和销毁等操作。
- **窗口类型**:包括主窗口、对话框、控件等。
- **消息**:MiniGUI通过消息队列传递消息,包括用户输入事件和其他系统事件。
- **消息处理**:MiniGUI提供了专门的函数来处理不同类型的事件消息。
- **重要消息**:如MSG_NCCREATE、MSG_SIZECHANGING、MSG_SIZECHANGED等。
#### 七、总结
MiniGUI是一款功能强大且灵活的嵌入式GUI系统,适用于多种操作系统。通过了解其基础知识、编程模型和消息处理机制,开发者可以有效地利用MiniGUI开发出高质量的嵌入式图形用户界面应用。此外,MiniGUI还提供了丰富的API文档和示例代码,帮助开发者快速上手。