精易论坛

标题: 改变组件尺寸(不闪) [打印本页]

作者: 笨潴    时间: 2012-1-6 16:49
标题: 改变组件尺寸(不闪)
本帖最后由 笨潴 于 2012-1-6 17:02 编辑

界面上窗口很多,而且改变大小时很多窗口都要移动和改变大小,如果使用MoveWindow或者SetWindowPos两个API来
改变窗口的大小和位置,由于他们是等待窗口重画完成后才返回,所以过程很慢,这样视觉效果就可能会闪烁。

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

有个地方要特别注意,要仔细计算清楚要移动多少个窗口,BeginDeferWindowPos设定的个数一定要和实际的个数一致,否则在Win9x下,如果实际移动的窗口数多于调用BeginDeferWindowPos时设定的个数,可能会造成系统崩溃。在Windows NT系列下不会有这样的问题。




不收费,需回复:


作者: 冰点    时间: 2012-1-6 16:56
沙发{:3_244:} 好久没看到笨猪发帖子了..
作者: V雪落有声V    时间: 2012-1-6 16:57
沙发 好久没看到笨猪发帖子了..
作者: 笨潴    时间: 2012-1-6 16:58
冰点 发表于 2012-1-6 16:56
沙发 好久没看到笨猪发帖子了..

{:3_245:}在实验室忙啊。。。
作者: 冰点    时间: 2012-1-6 17:08
笨潴 发表于 2012-1-6 16:58
在实验室忙啊。。。

你以为我不知道你一人在实验室干嘛啊.
作者: diefishfish    时间: 2012-1-6 17:10
回复后才能下载
作者: diefishfish    时间: 2012-1-6 17:11
有钱才能下载{:3_227:}
作者: diefishfish    时间: 2012-1-6 17:11
最后回复一次{:3_226:}
作者: 永久禁言    时间: 2012-1-6 17:15
猪   是不是我的那个原理写的·  ··
作者: qq875737210    时间: 2012-1-6 17:21
貌似很厉害,回复看看


作者: 易夏天    时间: 2012-1-6 17:27
{:3_236:}见识了
作者: lioupei25    时间: 2012-1-6 18:15
回复有经验 有下载点 哈哈
作者: C。    时间: 2012-1-6 18:19
看。。。。。。
作者: 魔法奇迹    时间: 2012-1-6 19:23
看不懂说明啊!!
作者: dgcr    时间: 2012-1-6 20:43
貌似很厉害,回复看看

作者: 网络注册会员    时间: 2012-1-6 21:10
太好了支持下啊
作者: hoie    时间: 2012-1-8 10:07
回复看看
{:3_244:}
作者: 工程师8421    时间: 2012-1-8 10:44
好好学习天天向上
作者: 百里情深    时间: 2012-1-8 13:07
学习一下呀
作者: 千年    时间: 2012-1-12 02:42
看看,收藏了~~
作者: 空虚的灵魂    时间: 2012-1-14 17:39
这个问题不错,很精妙,收下了,谢谢版主,并一并支持精益论坛,有你们易的明天才更好.
作者: 83468266    时间: 2012-1-16 23:20
看看
作者: 不信大牛本事    时间: 2012-1-17 16:31
p whP W这个技术一定要学啊,谢谢
作者: happyjay23    时间: 2012-1-25 22:42
貌似很厉害,回复看看
作者: 什么叫易    时间: 2012-1-26 14:00
有钱才能下载
作者: jackzxy965    时间: 2012-2-2 12:44
想偷懒一次改变全部尺寸
{:3_227:}
作者: lijn1215    时间: 2012-2-2 22:23
是组件在主窗口尺寸改变时跟随改变么?
作者: 16917325    时间: 2012-2-3 22:01
貌似很厉害,回复看看

作者: a3221134    时间: 2012-2-8 03:25
{:3_212:}123457890
作者: 工程师8421    时间: 2012-2-8 08:24
谢谢楼主分享{:3_244:}
作者: 真的很疼    时间: 2012-2-8 08:59
  原理说的很清楚。。 一幕了然 谢谢 提供
作者: dashu123456789    时间: 2012-2-9 11:12
有时候,好的思路更重要
作者: 931691974    时间: 2012-2-9 13:33
沙发 好久没看到笨猪发帖子了..
作者: liuchang    时间: 2012-2-17 01:57
支持下 嘿嘿
作者: 294090396    时间: 2012-2-18 13:57
好东西,学习!{:3_241:}
作者: 294090396    时间: 2012-2-18 14:00
{:3_231:} 不是吧,这么俩API也保密啊?居然是模块。我彻底晕了。
作者: 碧水青龙    时间: 2012-3-7 16:27
只想看看怎么才能不闪

作者: w182291185    时间: 2012-3-15 10:33
还得回复才能下载啊···
作者: w182291185    时间: 2012-3-15 10:33
还得回复。赚点金币吧··{:3_244:}{:3_244:}
作者: w182291185    时间: 2012-3-15 10:34
我是路过的·进来看看而已··呵呵3_244:}{:3_244:}
作者: 全套核中支    时间: 2012-3-16 19:01
{:3_235:}{:3_235:}
作者: AisinGioro福    时间: 2012-3-16 19:35
谢谢楼主!收藏!!
作者: 英培    时间: 2012-3-22 03:55
好久没看到笨猪发帖子了
作者: wyd134    时间: 2012-3-22 07:45
非常感谢,收下了
作者: 讲不出再见    时间: 2012-4-8 13:42
什么组件的尺寸啊。
作者: 低调小兵    时间: 2012-4-8 14:00
回复后看的东西肯定不错,感谢楼主-------------雷锋之路采集器
作者: 学习中123    时间: 2012-4-8 19:02
学习!!!!!!!!!!!!!
作者: 淡年华    时间: 2012-4-12 20:42
as打扫打扫打扫打扫的
作者: key2009    时间: 2012-4-13 14:43
这个要学习了~正为这个发愁
作者: 1396642546    时间: 2012-4-15 13:25
谢谢楼主!收藏、学习、、、
作者: 学习中123    时间: 2012-4-15 14:55
回复看看

作者: 极度无聊    时间: 2012-4-21 18:52
学习下。看下怎么做的。
作者: 410264228    时间: 2012-5-6 17:15
先看什么东西
作者: 网络注册络员    时间: 2012-5-6 19:12
这个好我要顶一下的
作者: zxzx1333    时间: 2012-5-8 17:41
超级支持下 只为学习所用
作者: kissyou    时间: 2012-5-8 18:10
好强大的样子                 
作者: Tony8531    时间: 2012-5-13 20:43
看看   遇到这样的问题了
作者: wanglingxing1    时间: 2012-5-14 08:21
小样....................
作者: 何必掩饰    时间: 2012-5-25 16:38
找了好久,终于找到。希望能用
作者: 白兔子    时间: 2012-5-26 18:01
哇  好赞  看看效果啊!
作者: Robust    时间: 2012-5-26 20:03
Sunshines,如果您要查看本帖隐藏内容请回复
作者: 中原随风    时间: 2012-5-27 21:57
学习学习》》》》》》》》
作者: 堕落深渊    时间: 2012-6-5 14:26
看看先!!!!!!!!!!
作者: 远航接单    时间: 2012-6-8 00:59
{:3_235:}{:3_235:}
作者: 369Studios    时间: 2012-6-17 15:52
给力啊!!!!!!!!!
作者: 软件无忧    时间: 2012-7-3 21:24
路过支持一下啦

作者: hahaysw    时间: 2012-8-6 12:24
哦,好人啊,谈的东西好,而且不收费。
作者: 宇轩o    时间: 2012-8-15 05:55
下载学习学习
作者: ganqi123    时间: 2012-9-3 11:39
貌似很厉害,回复看看

作者: 85851234    时间: 2012-9-4 21:24
回复后才能下载
作者: kangqi    时间: 2012-9-4 22:24
改变组件尺寸(不闪) [复制链接]
作者: dad4131    时间: 2012-10-13 19:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精易Evol    时间: 2012-11-21 19:23
API我还不怎么会用,呵呵
作者: Yolm    时间: 2013-2-4 14:48
支持一下,学习
作者: 小兔子乖    时间: 2013-3-20 00:32
看看;额
作者: 网络注册会员    时间: 2013-3-26 08:03
支持一下我地原巾
作者: za11111    时间: 2013-4-1 23:29
是浮士德的飞
作者: 穿山甲    时间: 2013-4-20 13:55
看盾
作者: tengzren    时间: 2013-4-30 10:04
好好  太好了
作者: 破碎的眼泪    时间: 2013-5-11 15:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhengwulin    时间: 2013-8-21 20:27
在实验室忙啊。。。
作者: 淑名夏凛月    时间: 2014-5-31 11:21
8不是很好用
作者: 酱叮当    时间: 2015-6-27 19:39
这不错
作者: yibuqingyi    时间: 2015-6-28 15:43
有钱才能下载
作者: zhengetor    时间: 2016-8-19 09:43
貌似很厉害,回复看看

作者: 网上邻居007    时间: 2016-10-16 20:40
谢谢了我喜欢
作者: 网上邻居007    时间: 2016-10-16 20:40
非常规三星啊
作者: ycli368    时间: 2017-4-14 09:00
我用了还是闪动,求指导
作者: china2020358    时间: 2017-5-22 15:50
谢谢分享好东西
作者: gto250    时间: 2017-9-10 16:11
用到了再来下载

作者: 编程者    时间: 2018-1-29 23:35
我在vip求助区的最佳答案你给我的荣誉应该是3  你只给了1
作者: 胡八一    时间: 2018-6-18 06:39
需要这个学习一下
作者: 大头菜    时间: 2018-9-28 23:27
特地前来学习!!!
作者: 淘神    时间: 2019-1-12 16:51
使用以下API来处理窗口移动,BeginDeferWindowPos, DeferWindowPos,EndDeferWindowPos
作者: EMicry    时间: 2019-2-7 13:59
嗯                           
作者: woshipqj    时间: 2019-5-18 22:24
貌似很厉害,回复看看
作者: Newagestudio    时间: 2019-7-13 08:41
借鉴学习啦~
作者: a37755406    时间: 2019-7-22 10:05

作者: Christoph    时间: 2019-11-22 02:29
有个地方要特别注意,要仔细计算清楚要移动多少个窗口,BeginDeferWindowPos设定的个数一定要和实际的个数一致,否则在Win9x下,如果实际移动的窗口数多于调用BeginDeferWindowPos时设定的个数,可能会造成系统崩溃。在Windows NT系列下不会有这样的问题。
作者: 卢本伟LBW    时间: 2020-1-25 19:47
貌似很厉害,回复看看




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4