Al momento sei offline in attesa che la connessione Internet venga ristabilita

INFORMAZIONI: Calcolo l'altezza logica e la dimensione di punto di un tipo di carattere

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 74299
Sommario
Per creare un tipo di carattere nell'ambiente di grafica di Microsoft Windows specificato solo la dimensione richiesta, è necessario che un'applicazione calcolare l'altezza del carattere logico perché le funzioni CreateFont() e CreateFontIndirect() consente di utilizzare le unità logiche per specificare l'altezza.

Per descrivere un tipo di carattere per l'utente, un'applicazione può calcolare la dimensione in punti del tipo di carattere, dato l'altezza. Questo articolo vengono fornite le formule necessari per eseguire tali calcoli per la modalità di mapping MM_TEXT. Sarà necessario derivare una nuova equazione per calcolare la dimensione del tipo di carattere in un'altra modalità di mapping.
Informazioni
Per calcolare l'altezza logica, utilizzare la seguente formula:
                                Point Size * LOGPIXELSY   height = Internal Leading + -------------------------                                          72				
LOGPIXELSY è il numero di pixel contenuti in un pollice logico sul dispositivo. Questo valore è ottenuto chiamando la funzione GetDeviceCaps() con l'indice LOGPIXELSY. Il valore 72 è significativo in quanto un centimetro contiene 72 punti.

Il problema con questo calcolo è che non esiste un metodo per determinare l'iniziale interno per il tipo di carattere poiché non è ancora stato creato. Per ovviare a questa difficoltà, utilizzare la seguente variazione della formula:
            -(Point Size * LOGPIXELSY)   height = --------------------------                         72				
questa formula può essere scritto anche nel modo seguente:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);				
quando un'applicazione chiama il CreateFont() o CreateFontIndirect() funzioni e specifica un valore negativo per il parametro di altezza, il mapper del tipo di carattere fornisce la corrispondenza più simile per l'altezza del carattere, anziché l'altezza della cella. La differenza tra l'altezza della cella e l'altezza di carattere è iniziali interni, come illustrato nella figura riportata di seguito:
   ----------  <------------------------------   |        |           |- Internal Leading  |   | |   |  |  <---------                    |   | |   |  |        |                       |- Cell Height   | |---|  |        |- Character Height     |   | |   |  |        |                       |   | |   |  |        |                       |   ----------  <------------------------------				
la seguente formula calcola la dimensione del punto di un tipo di carattere:
                (Height - Internal Leading) * 72   Point Size = --------------------------------                           LOGPIXELSY				
i valori di altezza il e iniziale interno vengono ottenuti dalla struttura di dati TEXTMETRIC . Il valore LOGPIXELSY è ottenuto dalla funzione GetDeviceCaps , come indicato in precedenza.

Round calcolata dimensione in punti all'intero più vicino. La funzione di Windows MulDiv() Arrotonda il risultato e rappresenta una scelta eccellente per eseguire il calcolo precedente.
3.10 3.00 3,50 4.00 win16sdk TrueType

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 74299 - Ultima revisione: 11/21/2006 15:47:12 - Revisione: 3.2

Microsoft Windows Software Development Kit 3.1, Microsoft Win32 Application Programming Interface

  • kbmt kbinfo KB74299 KbMtit
Feedback
me("head")[0].appendChild(m);