如何避免MDI子窗口创建、切换时的闪烁?

解决方案 »

  1.   

    请参见http://www.csdn.net/expert/topic/785/785470.xml?temp=.2990534设置窗口全部最大化。
    打开MdiChild时,可以这样:
    LockWindowUpdate(Handle);
    if Form2 = nil then
      Form2:= TForm2.Create(Application);
    Form2.Show;
    LockWindowUpdate(0);
      

  2.   

    有一种方法是直接修改Delphi里VCL的源代码,可惜我忘记了,原来的贴子里面有,但一直再也找不到了
      

  3.   

    这个问题也困扰我很久了。
    但是如果MDI创建时处于普通大小的话,
    看齐来就没那么难受
      

  4.   

    无法忍受,锁顶重画焦点容易丢失。大富翁上也没人知道。难道没有办法像Vc一样平静如水吗??????!!!!!!!!!!!Sigh!!!!!!
      

  5.   

    我的方法:
    1.修改\Borland\Delphi5\Source\Vcl下的Forms文件:
      注释掉CMShowingChanged过程的SendMessage(Application.MainForm.ClientHandle, WM_MDIRESTORE, Handle, 0);   这一句2.在Delphi设置Library path,加入\Borland\Delphi5\Source\Vcl路径,并放在第一条位置。3.子窗的WindowState属性设为wsNormal4.在了窗的OnCreate()事件加一句  WindowState:=wsMaximized;完成。效果很好,没有闪烁。