日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

DPI更改后,界面錯亂了,大家?guī)蛶兔?/h3>
admin
2014年1月8日 0:0 本文熱度 6496
DPI原來是96,改成100后程序界面背景圖片和按鈕控件錯位了,怎么辦才能保證背景圖片和按鈕在固定位置,不受DPI的影響,或者DPI更改后,控件位置不出現(xiàn)錯亂呢

 

 

本程序解決使用VB生成應(yīng)用程序后,在高DPI下,特別是在WIN7下高DPI導(dǎo)致界面錯位,錯亂的問題。

思路:
1.獲得系統(tǒng)DPI值
2.計算得程序中所有窗體的高度和寬度像素值
3.設(shè)定所有控件隨著窗體變化而縮放
4.在標(biāo)準(zhǔn)96DPI下打開VB設(shè)置DPI縮放公式用來獲得不同DPI的實際緹數(shù)

示例代碼:【FORM1,COMMAND1,IMAGE 控件】
'96 DPI 下 TwipsPerPixelX TwipsPerPixelY 為 15 --- 即DPI為96時,15緹等于1像素
'120 DPI 下 TwipsPerPixelX TwipsPerPixelY 為 12 --- 即DPI為120時,12緹等于1像素
'這么看來 每高 1 DPI 就+8
'------------
'這個窗體高度是[在96DPI下測得]:2145緹[143像素,Y] 寬度是:8715緹[581像素,X]
'在這提供一個公式:1 像素 = 1440 TPI / 96 DPI = 15 緹
'所以X像素=1440/DPI值=Y緹;
'####################################################################################################################################
Option Explicit
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X

Private FormOldWidth As Long
'保存窗體的原始寬度
Private FormOldHeight As Long
'保存窗體的原始高度

'在調(diào)用ResizeForm前先調(diào)用本函數(shù)
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub

'按比例改變表單內(nèi)各元件的大小,
'在調(diào)用ReSizeForm前先調(diào)用ReSizeInit函數(shù)
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double

ScaleX = FormName.ScaleWidth / FormOldWidth
'保存窗體寬度縮放比例
ScaleY = FormName.ScaleHeight / FormOldHeight
'保存窗體高度縮放比例
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
'讀取控件的原始位置與大小

TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(i) = 0
End If
'根據(jù)控件的原始位置及窗體改變大小
'的比例對控件重新定位與改變大小
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next i
Next Obj
On Error GoTo 0
End Sub

Private Sub Form_Activate()
Dim aa As Long
Dim hdc0 As Long
hdc0 = GetDC(0)
aa = GetDeviceCaps(hdc0, LOGPIXELSX) '獲得DPI值
Dim x As Integer
x = 1440 / aa 'X緹=1像素
Me.Height = 143 * x
Me.Width = 581 * x
Image1.Height = 114 * x
Image1.Width = 581 * x

End Sub

Private Sub Form_Load()
Call ResizeInit(Me) '在程序裝入時必須加入
End Sub

Private Sub Form_Resize()
Call ResizeForm(Me) '確保窗體改變時控件隨之改變
End Sub

源程序包【示例代碼】下載地址:http://www.thfyhome.com/DPI.rar

該文章在 2014/1/8 0:00:15 編輯過

關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊、財務(wù)費(fèi)用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

国产欧美日韩小黄| 欧美亚洲国产另类在线观看第一页| 欧美伦理激情一区二区| 911亚洲青草眉| 三三视频成人| 小黄书成人精品| 精品一区二区入口| 日日日日本不卡日本不卡欧美| 91午夜精品福利视频| 欧美 双插 黑人| 四色播放欧美日韩| 国产二区久久精品推荐二区| 中文字幕成人蜜臀激情av| 欧美狠狠狠狠| 激情五月丁香花啪啪| 好吊操手机免费视频| 久久婷婷精品影院| 极品成人视频黄色| 中文午夜影院| 欧美一区二区三区天天喊爽| 蜜臀91一区二区在线播放| 冰冰一区二区| 骚逼被操高潮| 鸥美精品一区二区久久婷婷| 一级黄片V1P| 五月天婷婷色悠悠激情| 亚洲综合图片三区| 天天日天天摸天天操天天爽 | 欧美精品日韩无码欧美| 二区AV一| 亚洲性交网站在线播放| 日韩AV男女免费| 18av黄色网址| 99久久久无码国产精品不片| 亚洲 图片 欧美 日韩| 男人爽网站| 日韓午夜成人無碼淫片| 黄色日本在线观 看一区二区| 91人妻久久久| 欧美一区又色又爽又国产| 色五月天激情四射一二三区|