Převod Twipsů na Pixely |
![]() |
Postup: Do deklarační části formuláře zapište: Option Explicit Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _ ByVal hdc As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long Private Const WU_LOGPIXELSX = 88 Private Const WU_LOGPIXELSY = 90 Private Function ConvertTwipsToPixels(lngTwips As Long, _ lngDirection As Long) As Long Dim lngDC As Long Dim lngPixelsPerInch As Long Const nTwipsPerInch = 1440 lngDC = GetDC(0) If (lngDirection = 0) Then 'Horizontálně lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX) Else 'Vertikálně lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY) End If lngDC = ReleaseDC(0, lngDC) ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch End Function Na formulář přidejte tlačítko. Na jeho událost Click: Private Sub Command1_Click() Dim lngOldTwips As Long lngOldTwips = 1000 MsgBox ConvertTwipsToPixels(lngOldTwips, 1) End Sub Protože Twipsy nejsou pravidelný čtverec, je třeba při volání funkce ConvertTwipsToPixels určit, zda chcete převod spočítat horizontálně nebo vertikálně. |
![]() |
Autor: The Bozena |