软件显示问题

时间:2011-03-02 07:17:03

标签: vb6 screen-resolution resolution-independence

使用VB6

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

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

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

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

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

需要代码帮助

3 个答案:

答案 0 :(得分:5)

简单的选项是允许用户最大化您的表单,这将使其填满整个屏幕,无论他们的计算机当前的分辨率设置如何。

此方法的唯一问题是它不会拉伸/调整表单上的控件以匹配其新大小。布局看起来和以前一样,但是现在它将被塞进左上角,在它的右下方有一大片空的空间。因此,只要表单本身改变大小,诀窍是动态调整表单上的控件

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

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

--------------------------------
|              |               |
|              |               |
|              |   ListView    |
|              |               |
|              |               |
|   TreeView   |---------------|
|              |               |
|              |               |
|              |    TextBox    |
|              |               |
|              |               |
--------------------------------

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以使用移动方法调整控件的大小。 在调整大小时使用scalewidth,scaleheight,scalemode,twipsperpixel属性。

但是当调整SSTab中的控件时,移动方法无法正常工作,这需要更多努力克服它。您可以参考this

其他方式是以最小分辨率(即800X600)设计表格 将以所有其他分辨率显示。