如何根据分辩率大小,自动调整MSHFlexGrid表格的宽度'这是1024*768刚刚好的宽度,如果分辩率到了1440*900 如何自动调整表格的宽度
MSHFlexGrid1.ColWidth(0) = 300
MSHFlexGrid1.ColWidth(1) = 2000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 1500
MSHFlexGrid1.ColWidth(4) = 800
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1000
MSHFlexGrid1.ColWidth(7) = 1600
MSHFlexGrid1.ColWidth(0) = 300
MSHFlexGrid1.ColWidth(1) = 2000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 1500
MSHFlexGrid1.ColWidth(4) = 800
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1000
MSHFlexGrid1.ColWidth(7) = 1600
http://topic.csdn.net/u/20101109/16/e1372546-f1db-4c1e-8bb3-bd5485f3bbf5.html?20472
Dim lngScreenW As Long '屏幕的宽
Dim lngScreenH As Long '屏幕的高
lngScreenW = Screen.Width / 15
lngScreenH = Screen.Height / 15
If lngScreenW = 1024 And lngScreenH = 968 Then
MSHFlexGrid1.ColWidth(0) = 300
MSHFlexGrid1.ColWidth(1) = 2000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 1500
MSHFlexGrid1.ColWidth(4) = 800
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1000
MSHFlexGrid1.ColWidth(7) = 1600
End If
If lngScreenW = 1440 And lngScreenH = 900 Then
MSHFlexGrid1.ColWidth(0) = 400
MSHFlexGrid1.ColWidth(1) = 2100
MSHFlexGrid1.ColWidth(2) = 3200
MSHFlexGrid1.ColWidth(3) = 1600
MSHFlexGrid1.ColWidth(4) = 900
MSHFlexGrid1.ColWidth(5) = 1100
MSHFlexGrid1.ColWidth(6) = 1100
MSHFlexGrid1.ColWidth(7) = 1700
End If
End Subcode]
Dim lngScreenW As Long '屏幕的宽
lngScreenW = Screen.Width / 15
MSHFlexGrid1.ColWidth(0) = 300
MSHFlexGrid1.ColWidth(1) = 2000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 1500
MSHFlexGrid1.ColWidth(4) = 800
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1000
MSHFlexGrid1.ColWidth(7) = 1600 for i=0 to 7
MSHFlexGrid1.ColWidth(i) = MSHFlexGrid1.ColWidth(i)/1024 *lngScreenW
for i=0 to 7
MSHFlexGrid1.ColWidth(i) = MSHFlexGrid1.ColWidth(i)/1024 *lngScreenW
next i
Dim dblScale As Double
dblScale = Screen.Width \ Screen.TwipsPerPixelX \ 1024
Me.MSHFlexGrid1.Cols = 8
MSHFlexGrid1.ColWidth(0) = 300 * dblScale
MSHFlexGrid1.ColWidth(1) = 2000 * dblScale
MSHFlexGrid1.ColWidth(2) = 3000 * dblScale
MSHFlexGrid1.ColWidth(3) = 1500 * dblScale
MSHFlexGrid1.ColWidth(4) = 800 * dblScale
MSHFlexGrid1.ColWidth(5) = 1000 * dblScale
MSHFlexGrid1.ColWidth(6) = 1000 * dblScale
MSHFlexGrid1.ColWidth(7) = 1600 * dblScale
End Sub
dblScale = (Screen.Width \ Screen.TwipsPerPixelX) / 1024
Private Sub Form_Load()
Dim i As Long, dblScale As Double, dblTotalWidth As Double, vWidths() As Variant
Me.ScaleMode = vbPixels
dblScale = (Screen.Width \ Screen.TwipsPerPixelX) / 1024
vWidths = Array(300, 2000, 3000, 1500, 800, 1000, 1000, 1600)
Me.MSHFlexGrid1.Cols = UBound(vWidths) + 1
For i = 0 To UBound(vWidths)
dblTotalWidth = dblTotalWidth + vWidths(i) * dblScale
Me.MSHFlexGrid1.ColWidth(i) = vWidths(i) * dblScale
Next
Me.MSHFlexGrid1.Width = dblTotalWidth \ Screen.TwipsPerPixelX + 6
End Sub