ACCESS 2000: come convertire twip in pixel

Utenti esperti: sono richieste conoscenze avanzate di gestione di codice, interoperabilità e funzioni multiutente.


Le informazioni contenute in questo articolo si applicano ai database di Microsoft Access (mdb) e ai progetti di Microsoft Access (adp).


Sommario

Poiché in Microsoft Access le proprietà di dimensioni/posizioni vengono memorizzate sotto forma di twip, in alcuni casi potrebbe essere necessario convertire i twip in pixel, ad esempio quando si genera una chiamata a una funzione API di Windows. Questo articolo spiega in che modo è possibile eseguire questa operazione.


Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presume che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a soddisfare specifiche esigenze. Se si dispone di esperienza di programmazione limitata, si consiglia di contattare un Microsoft Certified Solution Provider o la filiale Microsoft locale per informazioni sulla consulenza tecnica. Per ulteriori informazioni in merito ai Microsoft Certified Solution Provider, visitare la seguente pagina Web:


Per ulteriori informazioni sulle opzioni di supporto disponibili da Microsoft, visitare la seguente pagina Web (informazioni in lingua inglese):


Informazioni

È possibile utilizzare la seguente funzione ConvertTwipsToPixels() per convertire twip in pixel. Si tenga presente che i pixel non sono sempre quadrati, ossia l'altezza e la larghezza non sono sempre uguali, quindi è necessario passare la funzione specificando la direzione orizzontale o verticale da utilizzare.
  1. Creare un nuovo modulo e digitare quanto segue nella sezione Dichiarazioni:
    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
    NOTA: è possibile che in una libreria di Microsoft Access siano già definite funzioni API di Microsoft Windows, quindi le dichiarazioni potrebbero essere duplicate. Se viene visualizzato un messaggio di errore per un nome di routine duplicato, rimuovere o impostare come commento le istruzioni relative alle dichiarazioni contenute nel codice.
  2. Digitare la seguente routine:
    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
Per richiamare questa funzione, indicare il numero di twip da convertire e un altro parametro che specifichi la misura orizzontale o verticale (0 per orizzontale e un numero diverso da zero per verticale). Di seguito è riportata una chiamata di esempio:
Function ShowConvert()
Dim lngOldTwips As Long
lngOldTwips = 2377
ShowConvert = ConvertTwipsToPixels(lngOldTwips, 0)
End Function
Proprietà

ID articolo: 210590 - Ultima revisione: 20 gen 2006 - Revisione: 1

Feedback