易截截图软件、单文件、免安装、纯绿色、仅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+SQL编写数据库管理系统

     参照案例教程建立的数据库管理系统在甚多方面都存在问题。可能是新手,不管是对于大一就学过的VB编程还是这个学期刚接触的SQL,很多小问题常常出现在调试过程中。想请熟悉使用这两个平台的高手帮忙指点一下。
     1.如何解决DataGrid中多个column和SQL中多个表的绑定?目的 ......

求助VB通讯数据识别

VB学的用的都不精,编个程序用了很长时间了,现在这个通讯部分还没做好,求助大家一下:
  ctrMSComm.Output = "@01R"    '读命令
   instar = ctrMSComm.Input         '读通讯
wy_I = val(HEX_to_DEC(Mid(instar, 29, 4))) * (20 / 4095#)
&n ......

VB操作WORD

 Dim wdapp As Word.Application
    Dim wddoc As Word.Document
    Dim wdtable As Word.Table
   
    Set wdapp = CreateObject("word.application")
   
    Set wddoc = wdapp.Documents.Add
   ......

VB六个数取最大值和平均数的平方

VERSION 5.00
Begin VB.Form Form2
   AutoRedraw      =   -1  'True
   Caption         =   "计算界面"
   ClientHeight    =   4905
   ClientLe ......

vb用api调用对话框

建一个模块
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilt ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号