使用 VB6
我的默认软件显示设置为“800 x 600”
具有不同显示设置的客户端,例如“800 x 600”、“1366 x 768”、“1280 x 768”
客户端使用软件超过“800×600”显示设置意味着软件未装全屏。软件显示 75% 宽度的显示器尺寸。
当我根据显示手动调整软件大小时,图像显示非常大。
如何根据显示器显示尺寸全屏显示软件。
需要代码帮助
使用 VB6
我的默认软件显示设置为“800 x 600”
具有不同显示设置的客户端,例如“800 x 600”、“1366 x 768”、“1280 x 768”
客户端使用软件超过“800×600”显示设置意味着软件未装全屏。软件显示 75% 宽度的显示器尺寸。
当我根据显示手动调整软件大小时,图像显示非常大。
如何根据显示器显示尺寸全屏显示软件。
需要代码帮助
简单的选项是允许用户最大化您的表单,这将导致它填满整个屏幕,而不管他们计算机的当前分辨率设置如何。
这种方法的唯一问题是它不会拉伸/调整表单上的控件以匹配其新大小。布局看起来和以前一样,但现在它会被塞进左上角,下方和右侧有一大片空白区域。所以诀窍是每当表单本身改变大小时动态调整表单上的控件大小。
不幸的是,VB 6 对此没有任何内置支持。您别无选择,只能自己编写代码来处理调整所有控件的大小。执行此操作的最佳位置是您的表单Resize
事件。您可以通过检查表单的ScaleWidth
和ScaleHeight
属性来确定表单的当前大小。您的每个控件都公开了一个类似的Width
和Height
属性,您可以使用它来设置它们的大小,相对于它们的容器窗体的大小。您需要设计一些基本的数学逻辑来确定大小。一个快速的谷歌搜索应该会出现几个其他人如何做到这一点的例子,但没有可用的闪亮模型。
一个示例可以在 Microsoft Outlook 等电子邮件程序中找到。您可能有一个TreeView
占表单高度的 100%,但仅占其宽度的 50%;aListView
占据表单高度的 50% 和宽度的 50%;和一个TextBox
定位在它下面,占据了表单高度的 50% 和宽度的 50%。这将产生类似于下图所示的流体布局:
--------------------------------
| | |
| | |
| | ListView |
| | |
| | |
| TreeView |---------------|
| | |
| | |
| | TextBox |
| | |
| | |
--------------------------------
只需将主窗体更改为最大化(将属性设置window state
为2 - Maximized
),然后确保它包含的任何控件都根据需要调整大小或移动。
您可以使用move方法来调整控件的大小。在调整大小时使用 scalewidth、scaleheight、scalemode、twipsperpixel 属性。
但是,当调整 SSTab 中的控件大小时,move 方法无法正常工作,需要更多的努力来克服这一点。你可以参考这个
其他方法是以最小分辨率(即 800X600)设计表单,以便表单以所有其他分辨率显示。