注冊(cè) 登錄
Office中國(guó)論壇/Access中國(guó)論壇 返回首頁(yè)

的個(gè)人空間 http://m.mzhfr.cn/?0 [收藏] [復(fù)制] [分享] [RSS]

日志

緹與像素的互換

已有 513 次閱讀2008-2-14 13:30 |個(gè)人分類:API

      API都是以像素為單位,VBA中的默認(rèn)度量單位為緹;1440 緹等于 1 英寸,2者的單位不同必須進(jìn)行轉(zhuǎn)換。

'獲取指定窗口的設(shè)備場(chǎng)景
Private Declare Function apiGetDC Lib "user32" _
  Alias "GetDC" _
  (ByVal hwnd As Long) _
  As Long
'釋放由調(diào)用GetDC或GetWindowDC函數(shù)獲取的指定設(shè)備場(chǎng)景。它對(duì)類或私有設(shè)備場(chǎng)景無(wú)效(但這樣的調(diào)用不會(huì)造成損害)
Private Declare Function apiReleaseDC Lib "user32" _
  Alias "ReleaseDC" _
  (ByVal hwnd As Long, _
  ByVal hdc As Long) _
  As Long
'根據(jù)指定設(shè)備場(chǎng)景代表的設(shè)備的功能返回信息
Private Declare Function apiGetDeviceCaps Lib "gdi32" _
  Alias "GetDeviceCaps" (ByVal hdc As Long, _
  ByVal nIndex As Long) As Long

Private Const nTwipsPerInch = 1440
Private Const LOGPIXELSX = 88
Private Const LOGPIXELSY = 90
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Function ConvertTwipsToPixels(lngTwips As Long, _
                                lngDirection As Long) _
                                As Long
 '緹轉(zhuǎn)換成像素
    Dim lngDC As Long
    Dim lngPixelsPerInch As Long
    lngDC = apiGetDC(SM_CXSCREEN)
    If (lngDirection = SM_CXSCREEN) Then
        lngPixelsPerInch = apiGetDeviceCaps(lngDC, LOGPIXELSX)
    Else
        lngPixelsPerInch = apiGetDeviceCaps(lngDC, LOGPIXELSY)
    End If
    lngDC = apiReleaseDC(SM_CXSCREEN, lngDC)
    ConvertTwipsToPixels = lngTwips / nTwipsPerInch * lngPixelsPerInch
End Function

Function ConvertPixelsToTwips(lngPixels As Long, _
                                lngDirection As Long) _
                                As Long
  
 '像素轉(zhuǎn)換成緹
 
    Dim lngDC As Long
    Dim lngPixelsPerInch As Long
    lngDC = apiGetDC(SM_CXSCREEN)
    If (lngDirection = SM_CXSCREEN) Then
        lngPixelsPerInch = apiGetDeviceCaps(lngDC, LOGPIXELSX)
    Else
        lngPixelsPerInch = apiGetDeviceCaps(lngDC, LOGPIXELSY)
    End If
    lngDC = apiReleaseDC(SM_CXSCREEN, lngDC)
    ConvertPixelsToTwips = lngPixels * nTwipsPerInch / lngPixelsPerInch
End Function


 

發(fā)表評(píng)論 評(píng)論 (1 個(gè)評(píng)論)

回復(fù) tanhong 2008-2-22 11:33
學(xué)習(xí),收藏

facelist doodle 涂鴉板

您需要登錄后才可以評(píng)論 登錄 | 注冊(cè)

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:18 , Processed in 0.063728 second(s), 15 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部