|
|
比如 ,我们在一个高屏幕分辨率的环境下编了一个软件 .
但是使用者可能他的机器不支持这么高的分辨率, 那么在低于开发环境下的分辨率,
画面就会出现不和谐和部分图像消失的现象 . 怎样纠正这个现象呢
我们可以写一个屏幕调试程序 .
前面 ,我上网搜索了不少资料 , 有许多做法是干脆强制软件运行时更改屏幕分辨率,然后在关闭时返回分辨率 . 这种做法一是复杂, 要使用大量的API , 二是不稳定 .有的机器弄不好会重启.
这样 ,我们可以根据座标转换的原理 ,来做好屏幕分辨率的调整.
如下, 写下这个public 过程 这个可以加到你的模块或者类.
Public Sub SetLogin(FrmA As Form)
On Error Resume Next(有时候会出现错误,使用这句可避免,此外效果仍然能执行)
Dim a As Control
Dim Wx As Long, Wy As Long
Dim Dx As Double, Dy As Double
Wx = Screen.Width / Screen.TwipsPerPixelX(得到实际屏幕宽)
Wy = Screen.Height / Screen.TwipsPerPixelY(得到实际屏幕高)
Dx = Wx / 1440: Dy = Wy / 900
FrmA.Move FrmA.Left * Dx, FrmA.TOP * Dy, FrmA.Width * Dx, FrmA.Height * Dy
For Each a In FrmA.Controls
a.Move a.Left * Dx, a.TOP * Dy, a.Width * Dx, a.Height * Dy
Next
End Sub |
|