emwin多界面切换程序
时间: 2023-12-10 17:42:49 浏览: 87
emWin是一款基于C语言的GUI图形库,可以很方便地为嵌入式设备添加图形界面。emWin支持多界面切换,以下是一个简单的示例程序:
```c
#include "GUI.h"
#include "DIALOG.h"
// 定义界面句柄
WM_HWIN hWin1, hWin2;
// 界面1回调函数
void _cbWin1(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_RED);
GUI_Clear();
GUI_SetColor(GUI_WHITE);
GUI_SetFont(GUI_FONT_32B_ASCII);
GUI_DispStringHCenterAt("This is window 1", 160, 100);
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
// 界面2回调函数
void _cbWin2(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_GREEN);
GUI_Clear();
GUI_SetColor(GUI_WHITE);
GUI_SetFont(GUI_FONT_32B_ASCII);
GUI_DispStringHCenterAt("This is window 2", 160, 100);
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
int main(void) {
GUI_Init();
// 创建界面1
hWin1 = WM_CreateWindow(0, 0, 320, 240, WM_CF_SHOW, _cbWin1, 0);
// 创建界面2
hWin2 = WM_CreateWindow(0, 0, 320, 240, WM_CF_HIDE, _cbWin2, 0);
// 显示界面1
WM_ShowWindow(hWin1);
while (1) {
// 界面1和界面2之间循环切换
WM_HideWindow(hWin1);
WM_ShowWindow(hWin2);
GUI_Delay(1000);
WM_HideWindow(hWin2);
WM_ShowWindow(hWin1);
GUI_Delay(1000);
}
}
```
在上述示例程序中,我们首先定义了两个界面的回调函数 `_cbWin1()` 和 `_cbWin2()`,并分别创建了这两个界面的窗口句柄 `hWin1` 和 `hWin2`。在 `main` 函数中,我们先显示了界面1,然后通过循环切换界面1和界面2,每次显示一个界面,隐藏另一个界面。这样就实现了简单的多界面切换功能。
阅读全文