硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2113|回复: 3
收起左侧

[emWin] AppWizard 如何做两个窗口切换

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2021-11-4 11:45:17 | 显示全部楼层 |阅读模式



用工具生成一个界面:
*/
/*********************************************************************
*
*       _apRootList
*/
static APPW_ROOT_INFO * _apRootList[] = {
  &ID_SCREEN_00_RootInfo,
};


我要是在添加一个ID_SCREEN_01_RootInfo, 我是不是可以static APPW_ROOT_INFO * _apRootList[_iTem],然后根据_iTem的值切换么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115834
QQ
发表于 2021-11-4 12:56:33 | 显示全部楼层
appwizard自带快速上手手册里面的操作例子就是多窗口切换的。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2021-11-4 13:43:59 | 显示全部楼层
两个WIN之间切换
static fVoidVoid * _apfTest[] = {
  GUIDEMO_HardwareInfo,
#if 0//GUI_SUPPORT_TOUCH
  GUIDEMO_Touch,
#endif
  GUIDEMO_Speed,       
#if GUI_SUPPORT_MEMDEV
    GUIDEMO_Graph,
#endif
  GUIDEMO_Bitmap,
  GUIDEMO_Cursor,
  GUIDEMO_ShowInternationalFonts,
  GUIDEMO_ShowColorBar,
  GUIDEMO_ShowColorList,
   GUIDEMO_DemoLUT,
  GUIDEMO_DemoPolygon,
  GUIDEMO_Circle,
  GUIDEMO_ShowMemoryDevice,
  GUIDEMO_Automotive,
  GUIDEMO_Navigation,

#if GUI_WINSUPPORT
    GUIDEMO_DemoProgBar,
    GUIDEMO_DemoFrameWin,
    GUIDEMO_Dialog,
    GUIDEMO_WM,
#endif
  0
};

这是ugGUI的多页面管理,是用函数指针数据来切换,不同的函数。在每个函数中在用emwin_builder生成页面代码。

void GUIDEMO_HardwareInfo(void) {
        GUI_SetBkColor(0x994a3a);
        GUI_Clear();
               
        CreateWindow_info();
        GUI_X_SignalEvent();

       while(1)
                {                       
                          #ifdef GUI_BUFFERS
                                GUI_MULTIBUF_Begin();
                          #endif
                                 GUI_Exec();
                                               
                          #ifdef GUI_BUFFERS
                                 GUI_MULTIBUF_End();
                          #endif
                          GUI_X_WaitEventTimed(10);
}

void GUIDEMO_Speed(void) {
        GUI_SetBkColor(0x994a3a);
        GUI_Clear();
               
        CreateWindow_speed();
        GUI_X_SignalEvent();

       while(1)
                {                       
                          #ifdef GUI_BUFFERS
                                GUI_MULTIBUF_Begin();
                          #endif
                                 GUI_Exec();
                                               
                          #ifdef GUI_BUFFERS
                                 GUI_MULTIBUF_End();
                          #endif
                          GUI_X_WaitEventTimed(10);
}

问题:1,AppWizard 生成的代码这么弄呢?
         2,这两个函数之间切换约有1S的延时,才能切换过去,不只有遇到这个问题。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115834
QQ
发表于 2021-11-5 08:39:36 | 显示全部楼层
zcw123 发表于 2021-11-4 13:43
两个WIN之间切换
static fVoidVoid * _apfTest[] = {
  GUIDEMO_HardwareInfo,

近期有时间我做个例子。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-21 16:40 , Processed in 0.361510 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表