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ě.

Zpět

Autor: The Bozena