捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
无闪烁 MDI 子窗口
关键字:MDI 子窗口 最大化 无闪烁
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2006/4/26
发布者:vvyang 发布时间:2006/4/27
编辑器:DELPHI7 语  种:简体中文
分 类:窗体 下载浏览:3487/18135
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
1、很多朋友都问过怎样避免 MDI 子窗口在最大化(或最小化)过程中出现闪烁,就像 Excel 一样,子窗口不产生动画效果,不过一直都没有很好的解决办法。
2、如果您喜欢用 LockWindowUpdate 之类的就别往下看了。
3、原理极其简单,就是用 SystemParametersInfo 函数实现开、关系统的动画效果。
4、我把这种 MDI 子窗口写成了一个类,大家用的时候只要把 class(TForm) 中的 “TForm” 换成 “TQuietMDIChildForm”就行了,其他都跟平常一样。非 MDI 子窗口也可以这样继承,不过 Delphi 中万恶的 Application 会在里面捣乱。
5、我的水平很洼,代码也可能有缺陷,大家给提点意见吧。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
Dll 封装导出类演示
notblack 2007/5/19 下+2946/浏+19510 评+17
关于主窗体与子窗体之间的调用一点技巧
tp26021340 2006/11/6 下+0/浏+19830 评+8
无闪烁 MDI 子窗口
vvyang 2006/4/27 下+3487/浏+18136 评+14
调用DLL中窗体相关演示源码
msgsnd 2004/4/13 下+4457/浏+21194 评+12
MDI程序相关演示 (更新版)
hebiziyu 2004/3/17 下+3784/浏+19153 评+11
MDI程序调用dll中的mdiChildForm例子
hebiziyu 2004/1/31 下+2870/浏+18036 评+9
相关评论
共有评论14条 当前显示最后6条评论
vvyang 2006/7/29 12:08:21
To:
看来“如果您喜欢用 LockWindowUpdate 之类的就别往下看了”这句话没白写。
看清楚,“怎样避免 MDI 子窗口在最大化(或最小化)过程中出现闪烁”,您写的是虾米东西?
legend888888 2008/5/29 15:01:16
good
hellgod 2008/6/18 10:59:05
还是闪的。
var
  WM_SETREDRAW : DWORD;
  f : TForm2;
begin
    WM_SETREDRAW := $000B;
    SendMessage(ClientHandle,WM_SETREDRAW,0,0);
    f:= TForm2.Create(Application);
    f.Show;
    SendMessage(ClientHandle,WM_SETREDRAW,1,0);
    ReDrawWindow(ClientHandle,nil,0,RDW_INVALIDATE or RDW_ALLCHILDREN);

end;

这个方法更好些,基本上不闪了。(网上整理),需要引用windows.
hellgod 2008/6/18 13:24:15
子窗体一定要设置为fsMDIChild属性。
gddlcb 2009/5/24 18:46:45
还有一个问题啊,留下你的QQ或邮箱我发给你。
tsingfeng_bhcss 2009/8/6 18:15:35
如果把子窗体的WindowState设置成wsMaximized 还是闪烁的
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表