vb6 - vb6 MDI 应用程序 - 当 mdi 表单最大化时,它会出现在状态底部栏问题的下方
问题描述
我正在开发一个旧的 Visual Basic 6 应用程序,它刚刚开发了一个问题,它从来没有过。
它是一个 MDI 表单应用程序,它有 1 个主窗口,顶部有一个菜单,底部有状态栏,还有 2 个其他状态栏。它还有大约 50 个子窗口可以进入这个主框架。
当用户最大化任何子窗口时,似乎窗口最大化但没有注意到底部的工具栏并且它在它们下方最大化(看不见),因此子窗口的底部不会与工具栏的顶部相遇。
我已经做了 4 张图片,显示它是设计时、运行时正常然后最大化,你可以看到它隐藏了按钮。
我以前从未见过这个
我试图在子 Private Sub Form_Resize() 事件中编写一些调整大小的逻辑来抵消这种情况,但是,它根本没有效果。
这让我相信最大化时调整窗口大小是通过 Windows 系统本身处理的,或者深埋在 vb 中,我无法更改它。
在表单上添加/删除的控件都没有更改,据我记忆,我没有更改任何表单/控件值。
我也试过把控制放在前面,然后回来等等,没有影响
我试过以各种方式改变zindex,没有影响
大家有没有见过这个或者有什么想法
感谢您的阅读,任何帮助将不胜感激
谢谢
解决方案
子窗体的纯VB6解决方案:
Private Sub Form_Resize()
If WindowState <> vbMinimized then
Begin
If WindowState = vbMaximized then
WindowState = vbNormal
Top = Me.Parent.Top + Me.Parent.TopToolbar.Height
Height = Me.Parent.Height - Me.Parent.TopToolbar.Height - Me.Parent.BottomToolbar.Height
End
诀窍是不允许最大化模式,并调整窗口大小以适应剩余空间。
与默认的最大化行为不同,标题栏仍位于 MDI 窗口的顶部。
自从我使用 VB6 以来已经 10 多年了,请原谅任何代码缺陷。
推荐阅读
- express - 我们如何在 Expressjs 中使部分路由可选?
- flutter - Flutter/Dart:从 Switch/Case 返回值
- c# - 单击按钮后单元格颜色更改
- wpf - 如果等于和 gethashcode,wpf 绑定不刷新(不需要 IPROPERTYCHANGED!)
- docker - 在 Kubernetes 上发布新版本时自动更新容器镜像
- php - 如何使用 php 转义要在 Highcharts 中显示的数据中的单引号?
- rest - 使用 RestTemplate 中的交换方法时,如何解决 HttpMessageConverterExtractor 错误?
- mysql - 如何用两个重复的变量过滤mysql
- javascript - 如何通过双击使视频全屏
- java - Spring security oAuth 2.0(无效令牌不包含资源ID(oauth2-resource))