在Access中,我们常常看到计量单位缇(Twips) 。

所谓缇是屏幕的一种量度单位,等于 1/20 磅。缇是独立于屏幕的单位,可确保在所有显示系统中,屏幕应用程序中的屏幕元素的位置和比例都相同。逻辑上一英寸约为 1440 缇英寸和厘米换算单位英寸和厘米换算单位,一厘米为 567 缇 ( 在显示时,屏幕项目的长度是用英寸或厘米测量的 )。

像素(Pixels):监视器或打印机分辨率的最小单位

那么缇跟像素是怎么计算的呢?

右键=》桌面=》属性,选择“设置”选卡,单击高级按钮。

里面出现DPI设置。一般为“正常尺寸(96 DPI)”。

DPI的意思就是 DPI (Dots per Inch)。因此我们可以得到如下换算公式

1 Twip = 1440 TPI / 96 DPI = 15 Pixels

英寸和厘米换算单位_像素尺寸和厘米换算_厘米毫米换算单位换算

这里顺便说一下 ACCESS 中的其他几个单位的转换关系

磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸创业项目,或大约等于 1 厘米的 1/28。

英寸:2.54 厘米

一般情况下:1厘米=8505像素

另外分享几个堤与像素相互转换的通用函数

Option Compare Database
Option Explicit
Private Declare Function apiGetDC Lib "user32" Alias "GetDC" _
 (ByVal hwnd As Long) As Long
Private Declare Function apiReleaseDC Lib "user32" Alias "ReleaseDC" _
 (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function apiGetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" _
 (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Const LOGPIXELSX = 88
Private Const LOGPIXELSY = 90
Public Const DIRECTION_VERTICAL = 1
Public Const DIRECTION_HORIZONTAL = 0
'===============================================================================
'-函数名称: gFunTwipsToPixels
'-功能描述: 转换堤到像素
'-输入参数说明: 参数1:rlngTwips Long 需要转换的堤
' 参数2:rlngDirection Long DIRECTION_VERTICAL是Y方向 DIRECTION_HORIZONTAL为X方向
'-返回参数说明: 转换后像素值
'-使用语法示例: gFunTwipsToPixels 50,DIRECTION_VERTICAL
'-参考:
'-使用注意: 
'-兼容性: 97,2000,XP compatible
'-作者: 王宇虹(参考微软KB),改进:王宇虹
'===============================================================================
Function gFunTwipsToPixels(rlngTwips As Long, rlngDirection As Long) As Long
 On Error GoTo Err_gFunTwipsToPixels
 Dim lngDeviceHandle As Long
 Dim lngPixelsPerInch As Long
 lngDeviceHandle = apiGetDC(0)
 If rlngDirection = DIRECTION_HORIZONTAL Then '水平X方向
 lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSX)
 Else '垂直Y方向
 lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSY)
 End If
 lngDeviceHandle = apiReleaseDC(0, lngDeviceHandle)
 gFunTwipsToPixels = rlngTwips / 1440 * rlngPixelsPerInch
Exit_gFunTwipsToPixels:
 On Error Resume Next
 Exit Function
Err_gFunTwipsToPixels:
 MsgBox Err.Description, vbOKOnly + vbCritical, "Error: " & Err.Number
 Resume Exit_gFunTwipsToPixels
End Function
'===============================================================================
'-函数名称: gFunPixelsToTwips
'-功能描述: 转换像素到堤
'-输入参数说明: 参数1:rlngPixels Long 需要转换的像素
' 参数2:rlngDirection Long DIRECTION_VERTICAL是Y方向 DIRECTION_HORIZONTAL为X方向
'-返回参数说明: 转换后堤值
'-使用语法示例: gFunPixelsToTwips 50,DIRECTION_VERTICAL
'-参考:
'-使用注意: 
'-兼容性: 97,2000,XP compatible
'-作者: 王宇虹(参考微软KB),改进:王宇虹
'===============================================================================
Function gFunPixelsToTwips(rlngPixels As Long, rlngDirection As Long) As Long
 On Error GoTo Err_gFunPixelsToTwips
 Dim lngDeviceHandle As Long
 Dim lngPixelsPerInch As Long
 lngDeviceHandle = apiGetDC(0)
 If rlngDirection = DIRECTION_HORIZONTAL Then '水平X方向
 lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSX)
 Else '垂直Y方向
 lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSY)
 End If
 lngDeviceHandle = apiReleaseDC(0, lngDeviceHandle)
 gFunPixelsToTwips = rlngPixels * 1440 / rlngPixelsPerInch
Exit_gFunPixelsToTwips:
 On Error Resume Next
 Exit Function
Err_gFunPixelsToTwips:
 MsgBox Err.Description, vbOKOnly + vbCritical, "Error: " & Err.Number
 Resume Exit_gFunPixelsToTwips
End Function

更多的技巧:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注