看流星社区

 找回密码
 注册账号
查看: 4492|回复: 1

易语言_启动窗口_尺寸被改变,怎么样才能做到不闪

[复制链接]

该用户从未签到

发表于 2014-7-26 09:20:21 | 显示全部楼层 |阅读模式
当窗口中有多个控件要随窗口改变大小时,一般都会用到,尺寸被改变
尺寸被改变 时如果窗口中的控件比较多闪烁就很厉害,请问:
_启动窗口_尺寸被改变,怎么样才能做到不闪

该用户从未签到

发表于 2014-7-26 09:20:33 | 显示全部楼层
界面上窗口很多,而且改变大小时很多窗口都要移动和改变大小,如果使用MoveWindow或者SetWindowPos两个API来
改变窗口的大小和位置,由于他们是等待窗口重画完成后才返回,所以过程很慢,这样视觉效果就可能会闪烁。

解决方法:

使用以下API来处理窗口移动,BeginDeferWindowPos, DeferWindowPos,EndDeferWindowPos
先调用 BeginDeferWindowPos 设定需要移动的窗口的个数
使用DeferWindowPos,来移动窗口,这个API并不真的造成窗口移动
EndDeferWindowPos 一次性完成所有窗口的大小和位置的改变。

有个地方要特别注意,要仔细计算清楚要移动多少个窗口,BeginDeferWindowPos设定的个数一定要和实际的个数一致,否则在Win9x下,如果实际移动的窗口数多于调用BeginDeferWindowPos时设定的个数,可能会造成系统崩溃。在Windows NT系列下不会有这样的问题。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-11 23:42

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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