硬汉嵌入式论坛

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

[emWin] case WM_PAINT:调用不同用GUI_DrawBitmap()不能及时更新的问题

[复制链接]

30

主题

90

回帖

180

积分

初级会员

积分
180
发表于 2015-12-17 10:53:19 | 显示全部楼层 |阅读模式
我在case WM_PAINT:中根据条件的不同用GUI_DrawBitmap()来显示几幅图标表示当前工作状态,但是发现图标虽然可以更新但是总是不能及时更新,不知大侠有没有更好的方法?谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-12-17 19:17:02 | 显示全部楼层
那就在需要更新的时候调用下设置窗口无效的API函数。
回复

使用道具 举报

30

主题

90

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2015-12-18 10:47:21 | 显示全部楼层
用WM_InvalidateRect(WM_HWIN hWin, GUI_RECT* pRect);已经验证可行,谢谢[s:151]
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
发表于 2015-12-18 17:27:41 | 显示全部楼层

回 eric2013 的帖子

eric2013:那就在需要更新的时候调用下设置窗口无效的API函数。 (2015-12-17 19:17) 
用void WM_InvalidateArea(GUI_RECT* pRect);和void WM_InvalidateRect(WM_HWIN hWin, GUI_RECT* pRect);后虽然可以刷新,但是好像整个窗口都重绘了。难道只是使一个矩形区域无效,整个窗口都要重绘?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-12-18 22:27:03 | 显示全部楼层

回 犹豫的大三 的帖子

犹豫的大三:用void WM_InvalidateArea(GUI_RECT* pRect);和void WM_InvalidateRect(WM_HWIN hWin, GUI_RECT* pRect);后虽然可以刷新,但是好像整个窗口都重绘了。难道只是使一个矩形区域无效,整个窗口都要重绘? (2015-12-18 17:27) 
估计是你指定的区域稍有些问题,重新设置下区域试试看。
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
发表于 2015-12-21 15:53:37 | 显示全部楼层

回 eric2013 的帖子

eric2013:估计是你指定的区域稍有些问题,重新设置下区域试试看。 (2015-12-18 22:27) 
GUI_DrawRoundedRect()和GUI_AA_FillRoundedRectEx()有什么区别?在问一下,emwin5.22说明书你有吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-12-21 16:02:57 | 显示全部楼层

回 犹豫的大三 的帖子

犹豫的大三:GUI_DrawRoundedRect()和GUI_AA_FillRoundedRectEx()有什么区别?在问一下,emwin5.22说明书你有吗? (2015-12-21 15:53) 
GUI_DrawRoundedRect()是轮廓
GUI_AA_FillRoundedRectEx()是填充的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 16:46 , Processed in 0.039837 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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