硬汉嵌入式论坛

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

[emWin] 按钮使用位图设置皮肤后闪烁,开了内存内存设备,有遇到过这种情况的朋友吗

[复制链接]

17

主题

107

回帖

158

积分

初级会员

迎风而舞,扶摇直上九万里。

积分
158
发表于 2017-5-22 18:53:10 | 显示全部楼层 |阅读模式
        我用按钮控件显示位图图标,按个七八次再按的时候按钮按下松开的时候就闪烁,我是在PC仿真器上跑的程序,有遇到过这种情况的兄弟吗?
        WM_SetCreateFlags(WM_CF_MEMDEV);  也用这个函数使能了动态内存。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115736
QQ
发表于 2017-5-23 01:20:52 | 显示全部楼层
方便的话,发个能够在模拟器上面跑的简单测试,我给你测测。
回复

使用道具 举报

17

主题

107

回帖

158

积分

初级会员

迎风而舞,扶摇直上九万里。

积分
158
 楼主| 发表于 2017-5-23 09:26:40 | 显示全部楼层

回 eric2013 的帖子

eric2013:
方便的话,发个能够在模拟器上面跑的简单测试,我给你测测。
   button.rar (4 KB, 下载次数: 42)    硬汉非常谢谢,你直接把.c添加到仿真器上运行就可以了,点的前几次不闪,多点几次就闪烁了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115736
QQ
发表于 2017-5-23 10:56:42 | 显示全部楼层
这两个函数,换成如下初始化顺序,这样桌面窗口才能也使能使用存储设备。
    WM_SetCreateFlags(WM_CF_MEMDEV);   
    GUI_Init();
回复

使用道具 举报

17

主题

107

回帖

158

积分

初级会员

迎风而舞,扶摇直上九万里。

积分
158
 楼主| 发表于 2017-5-23 13:07:16 | 显示全部楼层

回 eric2013 的帖子

eric2013:这两个函数,换成如下初始化顺序,这样桌面窗口才能也使能使用存储设备。
    WM_SetCreateFlags(WM_CF_MEMDEV);    
    GUI_Init();
 (2017-05-23 10:56) 
换一下可以了,但是我看了下教程和官方的例程,都是把WM+SetCreatFlags() ; 这个函数放到GUI_Init() 这个函数后边了,有什么说法吗
回复

使用道具 举报

17

主题

107

回帖

158

积分

初级会员

迎风而舞,扶摇直上九万里。

积分
158
 楼主| 发表于 2017-5-23 13:09:47 | 显示全部楼层

回 eric2013 的帖子

eric2013:
这两个函数,换成如下初始化顺序,这样桌面窗口才能也使能使用存储设备。
    WM_SetCreateFlags(WM_CF_MEMDEV);   
    GUI_Init();
button_self.rar (4 KB, 下载次数: 38)   我照着例程做的一个自定义按钮的回调函数,按下去有透明效果,我这个按下去没啥反应,对着教程看也没什么差别
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115736
QQ
发表于 2017-5-23 14:57:02 | 显示全部楼层

回 业未央 的帖子

业未央:换一下可以了,但是我看了下教程和官方的例程,都是把WM+SetCreatFlags() ; 这个函数放到GUI_Init() 这个函数后边了,有什么说法吗 (2017-05-23 13:07) 
就是我前面说的,如果函数WM_SetCreateFlags(WM_CF_MEMDEV);  放在   GUI_Init();前面侧可以使能桌面窗口也使用存储设备,这样你建立在桌面窗口上面的按钮才不会闪烁。

而放在后面是不行的。放在后面的话,桌面窗口不会使用存储设备,就这点区别。
回复

使用道具 举报

17

主题

107

回帖

158

积分

初级会员

迎风而舞,扶摇直上九万里。

积分
158
 楼主| 发表于 2017-5-24 09:36:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:就是我前面说的,如果函数WM_SetCreateFlags(WM_CF_MEMDEV);  放在   GUI_Init();前面侧可以使能桌面窗口也使用存储设备,这样你建立在桌面窗口上面的按钮才不会闪烁。

而放在后面是不行的。放在后面的话,桌面窗口不会使用存储设备,就这点区别。 (2017-05-23 14:57) 
明白了,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 07:16 , Processed in 0.775487 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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