ACC2000: Jak převést twip pixelů

Upřesnit: Vyžaduje odborných kódování interoperability a víceuživatelské dovedností.


Tento článek platí pro databáze aplikace Microsoft Access (.mdb) a projektu Microsoft Access (ADP).


Souhrn

Protože aplikace Microsoft Access uloží jako twipech vlastnosti dimenze a umístění, v některých případech bude pravděpodobně nutné převést twip pixelů, například při volání funkce rozhraní API systému Windows. Tento článek ukazuje, jak to provést.


Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou pomoci vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo vytvářet postupy podle vašich konkrétních požadavků.

Další informace

Následující funkce ConvertTwipsToPixels() slouží k převodu twip pixelů. Obrazové body nejsou vždy čtvercový (výšku a šířku nejsou stejné); Proto je nutné projít požadovaným směrem"" Chcete-li použít (vodorovně nebo svisle).


  1. Vytvořte nový modul a zadejte následující v sekci deklarací:

    Option Explicit
    Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
    ByVal hdc As Long) As Long
    Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
    ByVal nIndex As Long) As Long

    Const WU_LOGPIXELSX = 88
    Const WU_LOGPIXELSY = 90

    POZNÁMKA: může mít některé funkce Microsoft Windows API definované v existující knihovně Microsoft Access; Proto vaše prohlášení může být duplicitní hodnoty. Pokud se zobrazí chybová zpráva o postup duplicitní název, odebrat nebo komentář mimo výkazu deklarace v kódu.
  2. Zadejte následující proceduru:
    Function ConvertTwipsToPixels (lngTwips as Long, _   lngDirection as long) As Long

    'Handle to device
    Dim lngDC as long
    Dim lngPixelsPerInch as Long
    Const nTwipsPerInch = 1440
    lngDC = GetDC(0)

    If (lngDirection = 0) Then 'Horizontal
    lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX)
    Else 'Vertical
    lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY)
    End If
    lngDC = ReleaseDC(0, lngDC)
    ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch

    End Function

Chcete-li volat tuto funkci, předejte počet twip, který chcete převést a jiný parametr určující vodorovné nebo svislé měření (0 pro vodorovné nenulovou hodnotu pro svislou). Následuje ukázka volání:

Function ShowConvert()   Dim lngOldTwips As Long
lngOldTwips = 2377
ShowConvert = ConvertTwipsToPixels(lngOldTwips, 0)
End Function

Vlastnosti

ID článku: 210590 - Poslední kontrola: 8. 1. 2017 - Revize: 1

Váš názor