如何消除MDI主窗体在创建MDI子窗体时的闪烁
来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:39:43
看看这个对你有没有用吧
作者: 轻舞肥羊
标题: 解决MDI子窗体建立时动画闪烁问题
关键字: MDI
分类: 开发经验
密级: 公开
(评分: , 回复: 0, 阅读: 262) »»
MDI子窗体如果在设计期最大化,那么在建立窗体的时候会有一个从普通状态到最大化的动画
过程,如果MDI子窗体上的控件太多则会发生比较强的闪烁现象,下面实现一个基类解决此问题,
机制是通过锁定MDI主窗口的更新来实现,缺点是要引用MDI主窗体或使用全局变量记录句柄.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2066407
type
TFrmBaseMDIChild = class(TForm)
public
constructor Create(AOwner: TComponent);reintroduce;override;
end;
constructor TFrmBaseMDIChild.Create(AOwner: TComponent);
begin
//MDIMainForm为MDI主窗体,如果不想引用,可以用全局变量保存
LockWindowUpdate(MDIMainForm.Handle);
try
inherited;
finally
LockWindowUpdate(0);
end;
end;
另外一种解决方法(好象有问题,有待测试)
覆盖CreateNew方法来解决,缺点是设计期指定的FormState属性无效.
一定要在代码中指定.否则覆盖这个方法就失去了意义.
type
TFrmBaseMDIChild = class(TFrmBase)
public
constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0);reintroduce;override;
end;
constructor TFrmBaseMDIChild.CreateNew(AOwner: TComponent; Dummy: Integer);
begin
inherited;
WindowState := wsMaximized; //这里指定状态为最大化,不会产生闪烁
end;
作者: 轻舞肥羊
标题: 解决MDI子窗体建立时动画闪烁问题
关键字: MDI
分类: 开发经验
密级: 公开
(评分: , 回复: 0, 阅读: 262) »»
MDI子窗体如果在设计期最大化,那么在建立窗体的时候会有一个从普通状态到最大化的动画
过程,如果MDI子窗体上的控件太多则会发生比较强的闪烁现象,下面实现一个基类解决此问题,
机制是通过锁定MDI主窗口的更新来实现,缺点是要引用MDI主窗体或使用全局变量记录句柄.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2066407
type
TFrmBaseMDIChild = class(TForm)
public
constructor Create(AOwner: TComponent);reintroduce;override;
end;
constructor TFrmBaseMDIChild.Create(AOwner: TComponent);
begin
//MDIMainForm为MDI主窗体,如果不想引用,可以用全局变量保存
LockWindowUpdate(MDIMainForm.Handle);
try
inherited;
finally
LockWindowUpdate(0);
end;
end;
另外一种解决方法(好象有问题,有待测试)
覆盖CreateNew方法来解决,缺点是设计期指定的FormState属性无效.
一定要在代码中指定.否则覆盖这个方法就失去了意义.
type
TFrmBaseMDIChild = class(TFrmBase)
public
constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0);reintroduce;override;
end;
constructor TFrmBaseMDIChild.CreateNew(AOwner: TComponent; Dummy: Integer);
begin
inherited;
WindowState := wsMaximized; //这里指定状态为最大化,不会产生闪烁
end;
如何消除MDI主窗体在创建MDI子窗体时的闪烁
在MDI应用程序中如何判断一个子窗体已经打开
绘制窗体时防止闪烁
在程序中怎么样判断子窗体是否打开和怎么样关闭子窗体的问题?
Web所有父窗体与子窗体的交互方法列举(子调用父窗体函数)
Excel创建简单的数据输入窗体
双击在新窗口打开,双击磁盘分区无响应,mdi窗口,vb mdi窗口,vb mdi 窗口 状...
VB创建汉字窗体1
Excel用户窗体技术—创建数据输入窗体
delphi下用windowsapi创建窗体
如何用VB创建汉字窗体
delphi下用windowsapi创建窗体
烟台万华扩能MDI
登录成功后关闭登录窗体显示主窗体的三种方法
定制化窗体之限制鼠标在窗体内移动
用户窗体
用户窗体
在用户窗体中播放视频
在用户窗体中自由绘图
VB创建不规则窗体经验总汇 | 异次元软件世界
vb数据窗体架构的说明
透明窗体的实现 - 博客大巴
如何拖动没有标题栏的窗体?? Delphi / VCL组件开发及应用
如何拖动没有标题栏的窗体?? Delphi / VCL组件开发及应用 - CSDN社区 c...