0

使用 VB6

我的默认软件显示设置为“800 x 600”

具有不同显示设置的客户端,例如“800 x 600”、“1366 x 768”、“1280 x 768”

客户端使用软件超过“800×600”显示设置意味着软件未装全屏。软件显示 75% 宽度的显示器尺寸。

当我根据显示手动调整软件大小时,图像显示非常大。

如何根据显示器显示尺寸全屏显示软件。

需要代码帮助

4

3 回答 3

5

简单的选项是允许用户最大化您的表单,这将导致它填满整个屏幕,而不管他们计算机的当前分辨率设置如何。

这种方法的唯一问题是它不会拉伸/调整表单上的控件以匹配其新大小。布局看起来和以前一样,但现在它会被塞进左上角,下方和右侧有一大片空白区域。所以诀窍是每当表单本身改变大小时动态调整表单上的控件大小。

不幸的是,VB 6 对此没有任何内置支持。您别无选择,只能自己编写代码来处理调整所有控件的大小。执行此操作的最佳位置是您的表单Resize事件。您可以通过检查表单的ScaleWidthScaleHeight属性来确定表单的当前大小。您的每个控件都公开了一个类似的WidthHeight属性,您可以使用它来设置它们的大小,相对于它们的容器窗体的大小。您需要设计一些基本的数学逻辑来确定大小。一个快速的谷歌搜索应该会出现几个其他人如何做到这一点的例子,但没有可用的闪亮模型。

一个示例可以在 Microsoft Outlook 等电子邮件程序中找到。您可能有一个TreeView占表单高度的 100%,但仅占其宽度的 50%;aListView占据表单高度的 50% 和宽度的 50%;和一个TextBox定位在它下面,占据了表单高度的 50% 和宽度的 50%。这将产生类似于下图所示的流体布局:

--------------------------------
|              |               |
|              |               |
|              |   ListView    |
|              |               |
|              |               |
|   TreeView   |---------------|
|              |               |
|              |               |
|              |    TextBox    |
|              |               |
|              |               |
--------------------------------
于 2011-03-02T07:30:49.237 回答
0

只需将主窗体更改为最大化(将属性设置window state2 - Maximized),然后确保它包含的任何控件都根据需要调整大小或移动。

于 2011-03-02T07:29:59.843 回答
0

您可以使用move方法来调整控件的大小。在调整大小时使用 scalewidth、scaleheight、scalemode、twipsperpixel 属性。

但是,当调整 SSTab 中的控件大小时,move 方法无法正常工作,需要更多的努力来克服这一点。你可以参考这个

其他方法是以最小分辨率(即 800X600)设计表单,以便表单以所有其他分辨率显示。

于 2011-03-03T09:16:54.890 回答