如何使得最大化的MDI子窗口切换时不闪?(200分)

  • 主题发起人 主题发起人 dreamisx
  • 开始时间 开始时间
D

dreamisx

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位一个问题:如何使得最大化的MDI子窗口切换时不闪?即不要那个最大化的动画效果。
当然,用LockWindowUpdate可以做到,但LockWindowUpdate(0)会使得所有窗口有些闪动的感觉。
我查看了Forms.pas,便仍未找到好方法,不过用Windows系统菜单中的“下一个”来切换MDI子窗口则不闪(其实就是发WM_MDINEXT消息到MDI主窗口),如何做到呢?
哪位高人知道,告诉我一下。
 
哇,这么快就沉下去了!再说一下,UltraEdit切换最大化的MDI子窗口时就不闪,所以是可以做到的,只是我还没找到方法。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1476714
 
没有注意过,实在不行的话,可以将MDI中的Client窗口先hide,MDI子窗口最大化后在show。
 
procedure LockUpdate;
begin
if Application.MainForm = nil then
begin
assert(false,'main form is nil!');
exit;
end;
Application.MainForm.Perform(WM_SETREDRAW, 0, 0); //锁屏幕
end;

procedure UnLockUpdate;
begin
if Application.MainForm = nil then
begin
assert(false,'main form is nil!');
exit;
end;
Application.MainForm.Perform(WM_SETREDRAW, 1, 0); //解锁屏幕并重画
RedrawWindow(Application.MainForm.Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);
end;
正在创建子窗口的时候调用LockUpdate,创建好后调用UnLockUpdate就可以了!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2522891
参见上面这张贴吧,可以解决你的问题
 
谢谢各位的回答,不过还是没解决。
用LockUpdateWindow的方法我知道,虽然可使最大化的MDI子窗口在切换时不闪,但,其他窗口(组件)会闪一下,感觉不太舒服;
大家可以看一下UltraEdit,它切换最大化的MDI子窗口时就不闪,或用系统菜单中的“下一个”切换,也不会闪,我想要就是那种效果。
 
在菜单点击“下一个”的时候LockUpdateWindow呀,也不会闪呀!
 
点击“下一个”本来就不闪,不用LockUpdateWindow的。
 
暂是用LockUpdateWindow,等待更好的方法。
 
其实很简单。我写了个演示,能解决你的问题,已经上传至 Delphi 盒子:
http://www.delphibox.com/
 
斑竹还没来得及发布。
 
不知vvyang用的是什么方法?等待中……
 
我试了下,vvyang的代码未能解决切换最大化的MDI子窗口时的闪动。
 
To dreamisx:
1、你问的不是怎样“不要那个最大化的动画效果”么,我的程序不是实现了这个功能么?
2、“不要那个最大化的动画效果”与“如何使得最大化的MDI子窗口切换时不闪”压根就不是一回事,一个是进行时,一个是完成时。您不要把他们联系得这么紧密。
3、解决方法我会,明天看看给你传过去。
4、另外有一点不太明白,最大化的窗口好象不能手动切换,您是用程序控制的么?
 
谢谢vvyang,我的意思是指最大化的MDI子窗口切换时会有一个从Normal到最大化的动画效果,而我写的MDI程序里不想要这种效果(看起来很不舒服),你看一下UltraEdit,它切换子窗口时就不会有那种闪动;
至于手工切换MDI子窗口最简单的实现方法是在MainForm中为其WindowMenu指定一个具体的菜单即可(注意其下级子菜单中不能有Caption='-'的菜单项)。
 
还是没等到更好的解决方法啊,唉呀,等到花儿都要谢了……[:)]
 
问题:dreamisx请进 ( 积分:50, 回复:0, 阅读:0 )
分类:图形图象 ( 版主:垃圾清洁工, menxin )
来自:963119, 时间:2006-6-25 19:55:00, ID:3481021 | 编辑 [显示:小字体 | 大字体]
Bmp to Jpg 图片转换并缩小尺寸(不是裁剪哦)
谢谢dreamisx :
  真高手!!!
请去问题区拿分,“保证再加50分



http://delphibbs.com/delphibbs/dispq.asp?lid=3481021
 
后退
顶部