当前位置:编程学习 > VB >>

求助:分辨率设置问题

  大家好 :
      我前几天用VB做了一个系统,投入使用后,有的电脑是宽屏,系统的字体还有窗体都变形了,这是分辨率的问题阿吗?
  在程序中该怎么设置呢?

 谢谢大家了,小有急用!!! --------------------编程问答-------------------- 建议你分两种情况来设置控件的位置和尺寸,可以在Main中取得Screen的Height和Width,算出比例来确定,如果是宽屏,那么设置宽屏的位置,如果是正屏,那么设置正屏的位置。 --------------------编程问答-------------------- 这是正常现象。
普通的显示器,分辨率分别设为 1280x1024 和 1280x960 也会产生变形。 --------------------编程问答-------------------- 这和宽屏不宽屏没关系,关键是用电脑的人本身就没有把显示器设成匹配的分辨率,在他们的显示器上显示出来的任何东西都是变形的,你再改程序也是白搭 --------------------编程问答-------------------- 很实在的问题 --------------------编程问答-------------------- 这就是优秀程序和普通程序的本质区别,优秀程序在任何情况下都几乎不存在显示错误的问题。

设计者应该考虑这些。 --------------------编程问答-------------------- 狗屁不通!
显示器在固定的分辨率下还可以调纵横比。
相同分辨率下画个圆,在不通显示器上显示有椭圆也有正圆。即使“优秀程序”都能把它们调成正圆,打印出来又扁了。 --------------------编程问答-------------------- 理解问题:

Tiger_Zhao理解的大概是在 类似1024*768分辨率在1280*800分辨率的显示器下观看出现的现象

我说的是用户擅自更改外观或者使用了不够标准的主题也或者不清楚用户到底更改了什么导致了部分内容显示错误的现象,此种现象在学校机房出现率非常高,vb中的width和height似乎都无效了。在此种情况下微软自带的那些程序却不会出错,这个也是困扰我的一个问题,我认为lz是此种情况。 --------------------编程问答-------------------- 请楼主解释。 --------------------编程问答-------------------- 我也遇到过这种问题,采用了了一个偷懒的办法:
我的系统是MDI结构的,假设系统最佳显示是1024*768,在MDI父窗体加载的时候判断一下,如果屏幕显示大于1024*768,则窗体以1024*768大小显示,多半用户不会想到去最大化的,这样首先保证了系统界面统一性,不至于界面太难看。

--------------------编程问答-------------------- 判断当前显示器分辨率的函数是GetDeviceCaps或GetSystemMetrics --------------------编程问答-------------------- 谢谢大家,我说的问题是:在普通屏下显示无任何问题,在宽屏时窗体变形,甚至字体也会变形!感谢大家的提示和讨论! --------------------编程问答-------------------- 做一个模块来帮助窗体自动根据分辨率来调整大小 --------------------编程问答-------------------- '****************************************************************************
'*根据分辨率自动调整模块完成功能:
'*   根据不同分辨率,自动调整窗体的大小和控件的大小和位置
'*AdjustForm(TheForm As Form, design_x As Integer, design_y As Integer)
'*      参数:TheForm , design_x , design_y
'*             TheForm:调用本模块的窗体名称
'*             design_x , design_y:为设计时使用的分辨率。
'*  如果设计时使用的分辨率为800,600,则design_x为800,design_y为600。
'*要使用本模块,在Form_Load事件中加入Call AdjustForm(Me, design_x, design_y)
'****************************************************************************

    Option Explicit
    Public Xtwips As Integer, Ytwips As Integer
    Public Xpixels As Integer, Ypixels As Integer
    
    Type FRMSIZE
       Height As Long
       Width As Long
    End Type
    
    Public RePosForm As Boolean
    Public DoResize As Boolean
    Dim MyForm As FRMSIZE
    Dim designx As Integer
    Dim designy As Integer
    Dim ScaleFactorX As Single, ScaleFactorY As Single
'调整控件及字体大小
Sub Resize_For_Resolution(ByVal SFX As Single, ByVal SFY As Single, MyForm As Form)
    Dim i As Integer
    Dim SFFont As Single
    SFFont = (SFX + SFY) / 2
    On Error Resume Next
    With MyForm
      For i = 0 To .Count - 1
       If TypeOf .Controls(i) Is ComboBox Then
         .Controls(i).Left = .Controls(i).Left * SFX
         .Controls(i).Top = .Controls(i).Top * SFY
         .Controls(i).Width = .Controls(i).Width * SFX
       Else
         .Controls(i).Move .Controls(i).Left * SFX, _
         .Controls(i).Top * SFY, _
         .Controls(i).Width * SFX, _
         .Controls(i).Height * SFY
       End If
         .Controls(i).FontSize = .Controls(i).FontSize * SFFont
      Next i
      If RePosForm Then
         .Move .Left * SFX, .Top * SFY, .Width * SFX, .Height * SFY
      End If
    End With
End Sub


Public Sub AdjustForm(TheForm As Form, design_x As Integer, design_y As Integer)
'根据分辨率调整窗体大小控件的大小和位置

'设置设计时的分辨率
    designx = design_x
    designy = design_y
    RePosForm = True
    DoResize = False
    Xtwips = Screen.TwipsPerPixelX
    Ytwips = Screen.TwipsPerPixelY
    Ypixels = Screen.Height / Ytwips
    Xpixels = Screen.Width / Xtwips
    ScaleFactorX = (Xpixels / designx)
    ScaleFactorY = (Ypixels / designy)
    TheForm.ScaleMode = 1
    Resize_For_Resolution ScaleFactorX, ScaleFactorY, TheForm
    MyForm.Height = TheForm.Height
    MyForm.Width = TheForm.Width
 
End Sub

--------------------编程问答-------------------- 这是个问题,不光光form,最好里面的控件也可以做到一致 --------------------编程问答-------------------- 那么同样的主题、同样的字体,打开“我的电脑”宽屏下字体有没有变形? --------------------编程问答-------------------- 可以上一张图,这样易说明问题,也好帮着解决。 --------------------编程问答--------------------
   帮顶..... --------------------编程问答-------------------- 学习
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,