硬汉嵌入式论坛

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

[emWin] 关于使用IMAGE_SetBitmap的问题

[复制链接]

16

主题

34

回帖

82

积分

初级会员

积分
82
发表于 2022-3-22 15:08:54 | 显示全部楼层 |阅读模式
请教一下硬汉哥,我在对话框内添加了一个IMAGE控件用来绘制图标,而且创建了一个定时器会周期2s使当前窗口无效(调用WM_InvalidateWindow(pMsg->hWin)),我原本想达到的效果是模拟蓝牙连接状态,当蓝牙连上时就有一个图标,当蓝牙断开连接的时候,就把这个图标所在区域清除,但是现在遇到一个问题,使用这个控件的时候,蓝牙连接上的状态没有问题,图标会一直显示,但是当断开连接后,图标就是短暂地被清掉,但是下一个2s,这个图标又显示出来,但是我调试的时候打印,短暂清掉代表能够进入我的清除区域那一句,但是又复现,程序其实是没有再进到我判断蓝牙连上的语句当中,但是图标就是出现了,麻烦硬汉哥帮我分析有可能是什么原因,附上我这一部分代码

test.c.txt

7.17 KB, 下载次数: 3

回复

使用道具 举报

16

主题

34

回帖

82

积分

初级会员

积分
82
 楼主| 发表于 2022-3-22 15:13:26 | 显示全部楼层
后面我把IMAGE_SetBitmap换成了GUI_DrawBitmap,能够解决断开连接后图标复现的问题,但这样就又出现一个问题,当我蓝牙连接上后,2s后图标会被清掉,因为我在WM_PAINT这个case下加了蓝牙连接情况的判断,目的是为了避免每次过两秒都会对显存写一下,占用外设资源
回复

使用道具 举报

16

主题

34

回帖

82

积分

初级会员

积分
82
 楼主| 发表于 2022-3-22 15:17:20 | 显示全部楼层
后面我将IMAGE_SetBitmap换成了GUI_DrawBitmap,没有使用控件的方式,能够解决蓝牙连上断开后,图标仍然存在的情况,但是用GUI_DrawBitmap这个函数又出现了一个问题,蓝牙连上后,图标能够显示出来,但是2s后,因为我定时2s调用WM_InvalidateWindow函数,会把我的蓝牙图标刷掉,我又不想每2s都对显存进行操作,这样会消耗外设资源
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115863
QQ
发表于 2022-3-22 17:37:11 | 显示全部楼层
简单省事些。直接全部在定时器WM_TIMER消息里面出来就行,采用此贴的方法
https://www.armbbs.cn/forum.php?mod=viewthread&tid=19834

image.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-23 10:13 , Processed in 0.270505 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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