当前位置:首页 » 多媒体相关

MDI子窗体的最大化问题


问题一:主窗体中有多个子窗体,子窗体在设期指定了windowstate为wsmaximazied,但每次创建子窗体时开始都是normal状态,然后再最大化,这其中有一个最大化的动作,会产生闪烁,如何能子窗体一创建就是已经是最大化的了,即去掉这个最大给的动作。  
   
  问题二:多个子窗体都是最大化显示的,在各子窗体间切换也是正常的,但如果关闭其中一个子窗体,便所有其它子窗体中便成了normal状态,怎么样才能关闭其中一个子窗体 而不影响其它的子窗体的最大化状态?

推荐阅读

  • 打假从心开始 SanDisk存储卡鉴别技巧 [详细内容]
  • 朗科春雷行动续集 512MB促销再追击闪存MP3 [详细内容]
  • 高端数码设备全面采购之功略 [详细内容]
  • Win XP优化设置和宽带应用技巧 [详细内容]
  • 关于A675没有标配光盘的解决办法 [详细内容]
  • 装最新款导航软件!同永PQ2车载GPSGPS地图软件及方案 [详细内容]
  • 与JS斗法 也谈二手笔记本的选购技巧 [详细内容]
  • 网友回答:
    网友:ljianq

    处理oncanresize事件,将resize设为false;

    网友:jiajun2001

    我也想知道

    网友:xiaozerong

    关注一下

    网友:darkinger

    不知道,不过好像不太好解决

    网友:linjl

    第一个问题以前还没注意到,第二个问题倒是解决了,我看了一下,不知是属性没设好还是怎么的,对于多个子窗体的程序,在打开一个新的窗体时,旧有的窗体就会变成normal,这个情景可以在新窗体产生是发生闪烁的一瞬间看到。由于很短暂,于是你看起来就是关掉一个窗体后所有的旧窗体都变成normal了。我解决的办法是在子窗体的formactivate事件中将窗体的windowstate属性再次设定wsmaximized状态,如果子窗体为frmtest,代码大致是,  
      if     frmtest->windowstate=wsmaximized;  
      不过依旧有闪烁发生,不知如何解决。

    网友:appleboyallen

    在桌面点属性,然后-》效果,把动画显示菜单和提示之前的勾去掉,闪的就好一些了。不过还是有闪烁:

    我在vb中解决了这个问题,好久没用vb,记得不清楚了,好像是用api函数阻止窗体重画。

    网友:vitwell

    你的第一个问题可以解决,你在主窗体的onshow   里面设置你的子窗体wsmaximized。可是当你在使用wsmaximized属性切换多个子窗体时还是出现了闪烁,不像其他多窗口程序切换时不出现闪烁,我想到一种减少闪烁的方法,那就是在显示前改变子窗口大小,使它于当前显示的子窗口一样大,可以减少闪烁。

    网友:fallenangel

    在打开子窗体前,  
      ::lockwindowupdate(mdimain->clienthandle)   ;  
      然后再打开  
      最后  
      ::lockwindowupdate(null)   ;  
       
      最好是放在  
      try{}   __finally{}里面  
     

    .

    讨论区

    Login