硬汉嵌入式论坛

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

[μCGUI] UC/GUI界面切换时,界面会叠加显示

[复制链接]

27

主题

94

回帖

175

积分

初级会员

积分
175
发表于 2018-3-26 14:51:17 | 显示全部楼层 |阅读模式
如题:UC/GUI3.90.做了一个A界面和B界面,当BUTTON0时切换进入B界面,


但是我切换到B界面的时候如图,B界面是我故意做小点方便观看的,可以明显看到,A界面并没删除
IMG_0706.JPG

这个界面的切换程序,也是参照硬汉V6-606_STemWin实验_多窗口之间切换实例(裸机)这个实例来做的。
所以现在是问题是怎么才能在A界面点击BUTTON0之后切换到B界面时,A界面进行隐藏或者删除?

当然查的一些资料的说的隐藏和删除,刷屏颜色等方式都试了试用一下3中方式,但是都没效果,要是我调用的地方不对,还请各位大佬们指出!

QQ图片20180326144636.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-3-26 16:02:32 | 显示全部楼层
这个正常,这是因为你的桌面窗口没有做重绘,简单点在GUI_Init函数后面调用函数WM_SetDesktopColor(),参填要重绘的颜色。

这个函数会自动执行桌面窗口重绘。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-26 16:10:13 | 显示全部楼层
eric2013 发表于 2018-3-26 16:02
这个正常,这是因为你的桌面窗口没有做重绘,简单点在GUI_Init函数后面调用函数WM_SetDesktopColor(),参填 ...

硬汉哥,我在MainTask()有调WM_SetDesktopColor()这个的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-3-26 16:15:57 | 显示全部楼层
Mark 发表于 2018-3-26 16:10
硬汉哥,我在MainTask()有调WM_SetDesktopColor()这个的。

有没有一个while大循环,要一直调用着GUI_Delay,GUI_Exec或者WM_Exec
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-26 16:35:17 | 显示全部楼层
eric2013 发表于 2018-3-26 16:15
有没有一个while大循环,要一直调用着GUI_Delay,GUI_Exec或者WM_Exec

有的硬汉哥,这个:

void MainTask(void)
{
        GUI_TIMER_HANDLE hTimer;
       
    GUI_Init();

        /* 使能UTF-8编码 */  
        GUI_UC_SetEncodeUTF8();
       
    WM_SetDesktopColor(GUI_WHITE);   
    WM_SetCreateFlags(WM_CF_MEMDEV);  

                /* 创建定时器,为轮询按键服务 */       
        hTimer = GUI_TIMER_Create(_cbTimer, /* 回调函数 */
                                                         1000,      
                                                         0x01,      
                                                         0);      
       
        /* 设置定时器周期为20ms */
        GUI_TIMER_SetPeriod(hTimer, 20);
       
        CreateFramewin1();
       
        while(1)
        {       
       
                GUI_Exec();
       
        }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-3-26 18:26:21 | 显示全部楼层
Mark 发表于 2018-3-26 16:35
有的硬汉哥,这个:

void MainTask(void)

那没问题,手头有没有其它正常的板子测试下你得这个应用,按说没问题的。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-26 19:27:13 | 显示全部楼层
eric2013 发表于 2018-3-26 18:26
那没问题,手头有没有其它正常的板子测试下你得这个应用,按说没问题的。

这个和硬件有关系吗?我也试了网上几种解决办法都没用呢,唉,现在也不知道咋办了哇。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-3-27 01:13:31 | 显示全部楼层
Mark 发表于 2018-3-26 19:27
这个和硬件有关系吗?我也试了网上几种解决办法都没用呢,唉,现在也不知道咋办了哇。

方便的话,在模拟器上跑下你的程序,然后把你的程序文件,仅需要你的应用代码,上传到论坛,我测试下看看。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-27 09:06:02 | 显示全部楼层
eric2013 发表于 2018-3-27 01:13
方便的话,在模拟器上跑下你的程序,然后把你的程序文件,仅需要你的应用代码,上传到论坛,我测试下看看 ...

硬汉哥,我之前用VS2013跑的的GUI代码貌似报了很多错误,所以我就没有使用模拟器,都是直接烧到板子上做调试的,现在用的是STM32F767IGT6的芯片,工程整个都上传了,你帮我看看,感激!

UCGUI8.zip

2.47 MB, 下载次数: 32

回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-27 10:54:40 | 显示全部楼层
eric2013 发表于 2018-3-27 01:13
方便的话,在模拟器上跑下你的程序,然后把你的程序文件,仅需要你的应用代码,上传到论坛,我测试下看看 ...

硬汉大佬,我找到问题了。是在我移植UC/GUI的时候在LCDDummy.c文件中的
void LCD_L0_FillRect(int x0, int y0, int x1, int y1) {
  //for (; y0 <= y1; y0++) {
//   LCD_L0_DrawHLine(x0, y0, x1);
// }
  
        LCD_Fill(x0,y0,x1,y1,LCD_COLORINDEX);
}
这里的颜色填充我用的是自己的填充函数,所以在我调用WM_SetDesktopColor()这个函数的时候移植没有反应,估计是我自己的填充颜色的函数有没有个UC/GUI想匹配吧?然后我把我自己的填充色函数屏掉,还是用GUI之前的,然后现在隐藏,删除,刷背景都OK了,非常感激你的帮助,在你那里学到不少东西,感激!感恩!感谢!
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-3-27 10:56:42 | 显示全部楼层
Mark 发表于 2018-3-27 10:54
硬汉大佬,我找到问题了。是在我移植UC/GUI的时候在LCDDummy.c文件中的
void LCD_L0_FillRect(int x0, i ...

解决方法是把红色自己的填色函数屏掉,把上面原先GUI自带的代码放开就行了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-3-27 11:34:31 | 显示全部楼层
Mark 发表于 2018-3-27 10:54
硬汉大佬,我找到问题了。是在我移植UC/GUI的时候在LCDDummy.c文件中的
void LCD_L0_FillRect(int x0, i ...

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 17:54 , Processed in 0.846136 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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