硬汉嵌入式论坛

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

[emWin] emwin 时钟界面闪屏

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2019-4-23 13:03:29 | 显示全部楼层 |阅读模式
已经开启内存存储,使用窗口定时器刷新时间值,就会闪屏,而且频率和定时的频率一致,关闭定时器就不会闪屏,
   switch (pMsg->MsgId)
    {
                case WM_INIT_DIALOG:
            InitDialogRTC();
            break;                        
               
                case WM_PAINT:
              
                        GUI_Clear();
GUI_DrawBitmap(&bmclock, 0, 0);
                     
            break;
               
                /* 定时1秒更新一次时间 */
                case WM_TIMER:
                        Clock_Update();
                    WM_RestartTimer(pMsg->Data.v, 1000);
                break;请问各位同学怎么回事啊?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-4-23 18:15:12 | 显示全部楼层
不好意思,回复晚了

如果开启了还闪烁,说明没有正常开启,你的时间刷新区域应该很小,这种地方应该正常才对。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2019-4-23 20:08:15 | 显示全部楼层
本帖最后由 鸿雁_b58YZ 于 2019-4-23 20:19 编辑

您好,那怎么查看有没有正常开启,我写的程序思路应该没问题吧WM_SetCreateFlags(WM_CF_MEMDEV); 这句话是使用内存设备吧
WM_MULTIBUF_Enable(1);为什么开启三缓冲会卡死?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-4-24 00:55:14 | 显示全部楼层
鸿雁_b58YZ 发表于 2019-4-23 20:08
您好,那怎么查看有没有正常开启,我写的程序思路应该没问题吧WM_SetCreateFlags(WM_CF_MEMDEV); 这句话是 ...

开启三缓冲的话,你的底层驱动也要做相应的支持才行。

而函数WM_SetCreateFlags(WM_CF_MEMDEV);的话,底层不用做特别处理,可以在程序里面直接开启。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2019-4-24 12:15:13 | 显示全部楼层
谢谢,昨天我发现,只要在窗口里开启定时器刷新时间值就会抖动,在窗体外就不会,是不是窗体机制有问题?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-4-25 10:49:56 | 显示全部楼层
鸿雁_b58YZ 发表于 2019-4-24 12:15
谢谢,昨天我发现,只要在窗口里开启定时器刷新时间值就会抖动,在窗体外就不会,是不是窗体机制有问题?

程序模板的确有问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 19:21 , Processed in 0.351264 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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