易截截图软件、单文件、免安装、纯绿色、仅160KB

vb界面自适应不同分辨率终极解决方案

现在宽屏,大屏幕显示器越来越普遍,原来在800*600下设计的软件界面,在大屏幕显示器(1680*1050)上界面总是缩到一角,非常难看,要将老程序的界面按照不同的分辨率在重新进行设计编程,整个过程比较复杂而且实用性不大,如果原来程序比较大且界面比较多的话那么工作量也将是巨大的,而且还可能出现其他错误,有没有一种重要增加少许代码就能将所有的界面自动适应不同的分辨率呢,在网上搜索了一下有很多现成的方法,但或多或少都有些问题,总之没有完美的解决方案,我经过研究找到了一种方法基本可以解决所有问题,与大家共享,当然该代码中所考虑的控件不完全,有些控件还需要特别处理,这个我在后面的常见问题说明里会提到,具体的代码需要你自己去添加。
代码如下:
1、新建一个模块(general.bas),在上面添加两个函数;
Public Type CONTROLRECT
    Left As Single
    Top As Single
    Width As Single
    Height As Single
End Type
Public Const HORZRES = 8
Public Const VERTRES = 10
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
'取得界面原始控件的位置及大小,并保存到数组里
Public Sub GetSourcePos(this As Object, rc() As CONTROLRECT, Optional bigFont As Boolean = True)
Dim tempX As Integer, tempY As Integer
tempX = this.ScaleWidth   '1024
tempY = this.ScaleHeight  '768
'此处原来如果在1024*768分辨率下显示正常的话,就可以直接赋值1024和768
 Dim temp As Control
 Dim nSum As Integer
 nSum = 0
 For Each temp In this
  '此处要注意,有些控件没有width,height等属性,在此要做出判断
  If TypeOf temp Is ComboBox Then
  
   With rc(nSum)
    .Left = temp.Left / tempX
    .Width = temp.Width / tempX
    .Top = temp.Top / tempY
   End With
'


相关文档:

VB模拟按键

键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作。但是有时候,一些重复性的,很繁琐的键盘操作 总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件。那么 我们怎样才 ......

VB六个数取最大值和最小数

mxl=1                          && 最大的文本框编号
mnl=1                  &n ......

VB 单实例运行

VB6
在程序运行时用如下语句:
if   app.PrevInstance=true   then  
            end    
end   if
VB 2005:
1. 在VB2005中,打开"属性"页,启用"应用程序“框架, 选中"
单实例应用程序"前面复选框,就行了。
......

VB MSHFLEXGRID MSHFLEXGRID 同时选中不连续的多行

  在工程中添加一个类模块,名为   Selection  
  然后加入以下代码:  
   
  Dim   colRows   As   Collection  
  Dim   ControlKey   As   Boolean  
  Public   WithEvents   flx   As   M ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号