硬汉嵌入式论坛

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

[emWin] 在重绘消息中绘制图片没有反应,当按键变更时。一直都是解锁的图片。

[复制链接]

6

主题

106

回帖

124

积分

初级会员

积分
124
发表于 2021-7-13 09:12:16 | 显示全部楼层 |阅读模式
QQ截图20210713090029.png
在重绘消息中绘制图片没有反应,当按键变更时。一直都是解锁的图片。
QQ截图20210713091141.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2021-7-13 09:57:45 | 显示全部楼层
你在WM_PAINT消息里面得触发执行WM_PAINT消息才可以。
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2021-7-13 10:03:00 | 显示全部楼层
eric2013 发表于 2021-7-13 09:57
你在WM_PAINT消息里面得触发执行WM_PAINT消息才可以。

你的意思是按键并没有出发重绘消息?那怎么样才能使按键触发重绘消息,改变图片
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2021-7-13 10:16:14 | 显示全部楼层
eric2013 发表于 2021-7-13 09:57
你在WM_PAINT消息里面得触发执行WM_PAINT消息才可以。

我在定时器中加入无效化窗口,但是这样按键读取有时候会失灵,没加之前按键是正常的。
QQ截图20210713101455.png
回复

使用道具 举报

3

主题

340

回帖

349

积分

高级会员

积分
349
发表于 2021-7-13 15:24:06 | 显示全部楼层
在按键消息里重绘,不是在timer或paint消息里。
回复

使用道具 举报

3

主题

340

回帖

349

积分

高级会员

积分
349
发表于 2021-7-13 15:25:17 | 显示全部楼层
你这么高频次重绘整个窗口,不卡才怪呢。CPU被吃光了,扫描按键的机会都丢失了。
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
发表于 2021-7-13 15:34:01 | 显示全部楼层
xudongqiang 发表于 2021-7-13 10:16
我在定时器中加入无效化窗口,但是这样按键读取有时候会失灵,没加之前按键是正常的。

这个定时器10ms无效化一次,绝对的卡死,也没时间去处理你的按键了。建议在Lock_Flag翻转的时候重绘窗口
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2021-7-14 01:22:43 | 显示全部楼层
xudongqiang 发表于 2021-7-13 10:16
我在定时器中加入无效化窗口,但是这样按键读取有时候会失灵,没加之前按键是正常的。

设置局部无效化,另外需要修改的时候再触发,不用每次都触发。

你也可以使用按钮控件,设置按钮自定义回调为你这个图片来实现,这样更新时候仅更新这个按钮即可
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2021-7-14 15:44:11 | 显示全部楼层
eric2013 发表于 2021-7-14 01:22
设置局部无效化,另外需要修改的时候再触发,不用每次都触发。

你也可以使用按钮控件,设置按钮自定义 ...

请问下这个局部无效化是那个函数?我把它放到按键里面就行了,就不放到定时器里面是这意思把。还有如何设置按钮自定义回调?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2021-7-15 08:32:51 | 显示全部楼层
xudongqiang 发表于 2021-7-14 15:44
请问下这个局部无效化是那个函数?我把它放到按键里面就行了,就不放到定时器里面是这意思把。还有如何设 ...

1、 局部无效化WM_InvalidateRect()
2、按钮自定义回调:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834

第47章
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2021-7-15 09:32:27 | 显示全部楼层
eric2013 发表于 2021-7-15 08:32
1、 局部无效化WM_InvalidateRect()
2、按钮自定义回调:
http://www.armbbs.cn/forum.php?mod=viewthr ...

好的 谢谢 我看看先
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 01:20 , Processed in 0.236986 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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