默認(rèn)是緹,1英寸=1440緹
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、三門峽網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、三門峽網(wǎng)絡(luò)營銷、三門峽企業(yè)策劃、三門峽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供三門峽建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
若想轉(zhuǎn)換為Pixel的話
例:
Option Explicit
Private Sub Form_Load()
MsgBox "緹寬度:" Form1.Width
Dim lPixel As Long
lPixel = Form1.Width / Screen.TwipsPerPixelX
MsgBox "Pixel寬度:" lPixel
End Sub
不同環(huán)境的默認(rèn)計量單位:VB中是緹,VBA中是磅,API中是像素。
這些計量單位的換算是:1緹=1/20磅,1磅=4/3像素,而1緹=1/15像素。
;replyid=133063id=122736page=1skin=0Star=2
緹的定義是1緹=1/20點(point)
點的定義是1點=1/72邏輯英寸
正常尺寸(96DPI)下:1英寸=96像素(可以在桌面上點右鍵,從”屬性-設(shè)置-高級-常規(guī)-DPI設(shè)置”中看到)
如果在大尺寸(120DPI)下,1英寸=120像素
由此可以得到,在正常尺寸下:
a)
1像素=1/96邏輯英寸=0.75(72/96)點=15(20*0.75)緹
在大尺寸(120DPI)下
b)
1像素=1/120邏輯英寸=0.6點=12緹
無須API,VB本身的功能就能完成:
Private?Sub?Form_Click()?'點擊窗體運行
Dim?dpi_x?As?Single,?dpi_y?As?Single,?px_twip?As?Single
dpi_x?=?Me.ScaleX(Screen.Width,?1,?3)?/?Me.ScaleX(Screen.Width,?1,?5)
dpi_y?=?Me.ScaleY(Screen.Height,?1,?3)?/?Me.ScaleY(Screen.Height,?1,?5)
px_twip?=?Me.ScaleX(1,?3,?1)
Print?"DPI_X?=?"??dpi_x
Print?"DPI_Y?=?"??dpi_y
Print?"1像素?=?"??px_twip??"緹"
End?Sub
保存前加一句 myImage2.SetResolution(300, 300) 你設(shè)置的bMape不是保存的主畫布 所以無效,設(shè)置分辨率就是 SetResolution(X,Y)
Screen.Height / Screen.TwipsPerPixelX ---這是把屏幕的絕對高度單位由緹轉(zhuǎn)為像素
(Screen.Height / Screen.TwipsPerPixelX) - rectVal.Bottom ---這是把屏幕高度減去工作區(qū)高度(計算結(jié)果就是任務(wù)欄的高度了,單位為像素)
((Screen.Height / Screen.TwipsPerPixelX) - rectVal.Bottom) * Screen.TwipsPerPixelX ---這是把上述計算結(jié)果的單位由像素轉(zhuǎn)為VB默認(rèn)的緹
補充說明:此語句存在下屬錯誤或缺陷:
1、任務(wù)欄并不是固定在屏幕下方的,也可以是上邊、左邊或右邊的(盡管很少有人這么做),如果出現(xiàn)后面這些情況,那么程序的計算結(jié)果就是不準(zhǔn)確的;
2、計算工作區(qū)的高度(或?qū)挾龋r,要把Bottom-Top(或Right-Left),因為Top(或Left)是不一定為0的(見上述1);
3、Screen.TwipsPerPixelX用錯了,應(yīng)該是Screen.TwipsPerPixelY,前者是屏幕橫向每像素多少緹,是用來轉(zhuǎn)換屏幕寬度單位的,后者則是屏幕縱向每像素多少緹,這才是用來轉(zhuǎn)換屏幕高度單位的。不過在絕大部分情況下,這兩個值是相等的(都是15),所以程序運行結(jié)果不會出錯,但是作為程序必須嚴(yán)謹(jǐn),因為說不定你的程序要運行在一些特殊的屏幕上呢(這時候兩個值就不一定相等了)?