注册 登录
编程论坛 VB6论坛

如何让VB界面适应不同的操作系统

chen3bing 发布于 2018-11-22 10:18, 2155 次点击
我用VB写了一个界面,在我电脑上运行正常。
在别人电脑上运行有时显示不全,有时不能覆盖整个窗口。
请问高手,如何解决?谢谢!
7 回复
#2
风吹过b2018-11-22 11:25
对应事件是: Form_Resize

1、如果 800*600 的窗体,能显示所有的控件。那么在更大窗体上,扩大某些控件的大小,以适应更大窗体。

2、如果在这个分辨率的窗体不能显示所有的控件。那么只能使用整体缩放所有的控件,或者加滚动条。
   整体缩放。在 Form_load 事件里,保存所有控件的4个属性,然后在  Form_Resize 计算了各属性的缩放后的数值,重新安排控件位置。
   滚动条。可以把控件放到一个窗口里,如 PictureBox ,然后使用滚动条控件这个控件上下左右移动,以便显示所有的内容。


#3
chen3bing2018-11-22 11:55
回复 2楼 风吹过b
谢谢!能不能那样呢?显示窗体之前,读取显示器的分辨率,保存起来。
然后改变屏幕的分辨率,可以正常显示。
退出后,再恢复显示器的分辨率。
#4
风吹过b2018-11-22 12:35
有些显示器不支持的高分辨率怎么办?
如,针对 24寸 最大 1920*1080 写的界面,换成 22寸  最大 1650*1050 上去怎么弄?
有用户要拿到笔记本上用。最大 1360*768  和 1366*768 两种,难道要吐血了。
还有人喜欢到虚拟机里用, 固定使用 800*600 的分辨率,那不要哭死。
#5
wds12018-11-22 14:25
每次进入程序,读取当前屏幕分辨率,之后你在调整

Private Sub Command1_Click()
Debug.Print Screen.Width / Screen.TwipsPerPixelX
Debug.Print Screen.Height / Screen.TwipsPerPixelY
End Sub

其实用
Screen.Width
Screen.Height
就可以控制



[此贴子已经被作者于2018-11-22 14:28编辑过]

#6
chen3bing2018-11-23 15:32
谢谢各位!我还有一个问题。
如果两台电脑,配置不一样,分辨率一样。那能不能保证界面显示的一样啊?
#7
wds12018-11-23 16:35
界面显示应该一样,但是窗体背景颜色可能不一样。

如果你使用的窗体、控件等背景选取系统颜色,他们就会根据不同的设置变为不同背景。
如果你使用的是固定颜色,就应该一样。

#8
chen3bing2018-11-23 17:22
那既然这样,那么一运行软件,就读取分辨率,根据分辨率调整界面布局也是可行的吧。
毕竟分辨率是有限的几种。
1