硬汉嵌入式论坛

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

[emWin] 有关WM_PAINT与WM_INIT_DIALOG问题

[复制链接]

13

主题

41

回帖

13

积分

初级会员

积分
13
发表于 2016-12-1 10:18:36 | 显示全部楼层 |阅读模式
在案子测试发现,生成窗口的回调函数里的WM_INIT_DIALOG先执行,WM_PAINT后执行,并且在窗口完全生成后,还会在跑一次WM_PAINT,这样导致案子一些显示错误。
如我的案子里面,要显示的是,先背景图片,再在图片上显示文字,我把背景图片放在WM_PAINT里面显示,而文字在WM_INIT_DIALOG显示,这样文字先显示,后显示图片,
有什么方法先让背景显示,再显示文字?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-12-1 10:29:14 | 显示全部楼层
把文字显示也放到WM_PAINT消息里面。
回复

使用道具 举报

13

主题

41

回帖

13

积分

初级会员

积分
13
 楼主| 发表于 2016-12-1 10:53:13 | 显示全部楼层

回 eric2013 的帖子

eric2013:把文字显示也放到WM_PAINT消息里面。 (2016-12-01 10:29) 
感谢回复,我有做过这个尝试,出现新问题,创建窗口后,触发窗口的话,还会再跑一次WM_PAINT,出现显示错误,看来我只能设定条件,规避一下问题。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-12-1 10:55:18 | 显示全部楼层
这样的话,那就把文本显示用 TEXT文本控件来实现。
回复

使用道具 举报

13

主题

41

回帖

13

积分

初级会员

积分
13
 楼主| 发表于 2016-12-1 10:59:51 | 显示全部楼层

回 eric2013 的帖子

eric2013:这样的话,那就把文本显示用 TEXT文本控件来实现。 (2016-12-01 10:55) 
我的是TEXT控件显示的~
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-12-1 11:02:13 | 显示全部楼层

回 liangjn1984 的帖子

liangjn1984:我的是TEXT控件显示的~ (2016-12-01 10:59)
明白你的意思了,那就用GUI_DispStringAt之类的文本显示函数在WM_PAINT消息里面实现。
这样就不会出现你楼主位说的问题了。

先刷图片,然后调用文本显示函数。
回复

使用道具 举报

13

主题

41

回帖

13

积分

初级会员

积分
13
 楼主| 发表于 2016-12-1 11:25:43 | 显示全部楼层

回 eric2013 的帖子

eric2013:明白你的意思了,那就用GUI_DispStringAt之类的文本显示函数在WM_PAINT消息里面实现。
这样就不会出现你楼主位说的问题了。

先刷图片,然后调用文本显示函数。
....... (2016-12-01 11:02) 
问题已经解决,增加一个标志显示图片加载完成,当WM_PAINT内容完成,标志置1,不让再执行WM_PAINT里的内容,谢谢~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 07:02 , Processed in 0.046250 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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