如何调整我的vb6程序以使其自动适合任何屏幕分辨率?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调整我的vb6程序以使其自动适合任何屏幕分辨率?相关的知识,希望对你有一定的参考价值。
我怎么能有一个在1280 * 1024正确打开的vb6程序,但当切换到其他分辨率说640 * 480我只能看到一半的屏幕。如何重新调整我的vb6程序的大小,以便它自动适合任何屏幕分辨率?
您需要使用Screen对象,这将始终以像素为单位提供当前分辨率:
Dim screenwidth,screenheight As Single
screenwidth = Screen.Width Screen.TwipsPerPixelX
screenheight = Screen.Height Screen.TwipsPerPixelY
通常,适合调整大小的表单具有适合“流动”布局的控件。通常这类似于支持滚动条的TextBox,网格控件等。在为按钮等固定大小的元素分配位置(即移动)后,可以根据需要缩小/增大这些控件。
对于具有大量固定大小控件的繁忙表单,这些控件不是“面向文档”,因此没有设置答案。有时创建一个可滚动的表单是有道理的,但通常它不会。
有些人试图调整“固定”元素的大小,更改字体大小等。这可以产生混合质量的结果,有时是好的,有时不是。
有关表单大小的注意事项最好在设计过程中作为一部分进行。对于某些应用程序,最好确定最小支持的表单大小。在其他情况下,您可能需要使用对话框窗体或选项卡控件来解决问题。
在VB6中没有简单的方法可以做到这一点,就像在.Net中一样。您必须根据新表单的客户端大小手动调整表单的Resized事件处理程序中的所有内容。这是一种痛苦和巨大的混乱,但这是唯一的方法。
更正:从来没有一种方法可以做,但我已经编程了VB6几年了,通常只是将它写入Resize处理程序就足够简单了,除了那个我还没有找到任何好办法。
您是否尝试过任何第三方工具?这是一个似乎有效的(免费的): -
ActiveResize Control Lite - 我创建了一个快速项目来尝试它,它在锡上做了它所说的!
Lite版本有一些限制,例如项目中的表单数量,表单上的控件数量等。如果您需要更多功能,还可以购买标准版或专业版。
我知道我们花了无数个小时试图实现我们自己的调整大小代码只删除它并修复大多数控件的位置,移动一些以使其看起来更好并限制表单的最小/最大功能 - 没有一个提供良好的用户体验。如果我们需要再次这样做,我可能会使用这个控件(或类似的控件)来节省时间。
C1Elastic控件允许调整大小并保持纵横比,调整您定义的设置的内部控件的大小。
这不是免费的,但是我一直保持着自己付出的代价。
Form1.Height = Screen.Height
Form1.Width = Screen.Width
此代码根据屏幕分辨率设置表单大小。
“ActiveResize Control Lite”ActiveX工具每个表单限制为20个控件。
一旦我们知道屏幕分辨率,您就可以做很多事情。
•最简单的解决方案是设计不同的形式,以适应四种最流行的显示器分辨率 - 640 x 480,800 x 600,1024 x 768和1600 x 1200。
•或者,我们可以根据屏幕分辨率编写动态调整大小并重新定位表单上每个控件的代码 - 这不是一件容易的事!
•基于屏幕分辨率调整控件大小的第三方控件非常有效。但总的来说,如果可以的话,最好避免这种问题。例如,请参阅codeguru.com上的在Visual Basic中创建灵活表单(Flexi-Forms)
要自动调整屏幕分辨率,您需要下载一个活动的x,将其拖到您的符合。搜索“veg gold vb6.0 screen Resize”。
以上是关于如何调整我的vb6程序以使其自动适合任何屏幕分辨率?的主要内容,如果未能解决你的问题,请参考以下文章