MDI窗口切换时的系统菜单问题(100分)

  • 主题发起人 主题发起人 zhanggeye
  • 开始时间 开始时间
Z

zhanggeye

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi5,mdi界面,子窗口在最大化时,<br>用”窗口“菜单切换窗口,<br>子窗口的系统菜单时有时无,<br>有时部分可用,无规律。<br>子窗口图标也时有时无,<br>程序代码并无对子窗口属性作任何修改。<br>后来发现delphi自带的mdidemo也是一样。<br>子窗口不是最大化时则无此问题。<br>请问各位是否有同样问题,及如何解决?<br>
 
按说不会出现这样的问题。<br>估计不是程序的问题,建议你重装delphi,<br>或杀杀毒,或重装windows试试。<br>
 
在‘delphi仓库’网的‘编程资料“里有一个mddi.zip是一个<br>关于MDI程序的问答集,采用WinHelp格式,比较详细地讲述了<br>MDI程序方面的问题。你可以下载下来看看,ok???<br><br>http://202.103.176.81/frun/bruce_zhao/
 
仔细观察后发现原来是因为子窗口切换时,<br>主菜单刷新时出现的问题,<br>应是delphi5的bug,<br>各位朋友有没有出现这种情况呢?<br>唉,难道就这样的程序拿来给人用?
 
这个问题从delphi 3 就存在了,一直没有解决。关键是在处理菜单合并<br>时的处理有问题。只能自己解决,让它重新来过一次,一般可以解决问题:<br><br>begin<br>&nbsp; &nbsp;LockWindowUpdate(Handle);<br>&nbsp; &nbsp;if (MIDChildCount &gt; 0) and (MDIChildren[0].WindowState = wsMaximized) then begin<br>&nbsp; &nbsp; &nbsp; MDIChildren[0].WindowState: = wsNormal;<br>&nbsp; &nbsp; &nbsp; Application.ProcessMessages;<br>&nbsp; &nbsp; &nbsp; MDIChildren[0].WindowState: = wsMaximized;<br>&nbsp; &nbsp; &nbsp; Application.ProcessMessages;<br>&nbsp; &nbsp;end;<br>&nbsp; &nbsp;LockWindowUpdate(0);<br>end;<br>
 
用DevExpress
 
多谢各位关注。<br>问题仍然未解决。请大家再拉拉。<br>to 新葵: &nbsp;资料很好,谢谢。<br><br>to kthy:<br>&nbsp; &nbsp;因为菜单合并在取消窗口隐藏之后才进行。<br>&nbsp; &nbsp;LockWindowUpdate(0)后窗口取消隐藏,<br>&nbsp; &nbsp;菜单进行合并,刷新菜单时才出现不正常。<br>&nbsp; &nbsp;所以我想这种办法是不会能正常的。<br>&nbsp; &nbsp;你是否用这种办法解决了这个问题?<br><br>to philips:DevExpress我没用过,试了一下mdi例子倒也正常,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;将我的程序菜单转换后实现不了合并。而且运行速度慢很多。<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;我有很多个的子窗口有菜单要合并。有没有更省事的方法?<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;期望有不用外来控件修改最小的办法. <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;实在不行也只有用DevExpress了.<br><br>
 
后退
顶部