INFO: Berechnen der logischen Höhe und Point Größe einer Schriftart

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 74299 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Um eine Schriftart in der grafischen Microsoft Windows-Umgebung erhält nur die erforderliche Punktgröße zu erstellen, muss eine Anwendung logische Höhe der Schriftart berechnen, da die CreateFont() und CreateFontIndirect() Funktionen logische Einheiten, verwenden um Höhe angeben.

Um eine Schriftart für den Benutzer zu beschreiben, kann eine Anwendung eine Schriftart Schriftgrad, erhält seine Höhe berechnen. Dieser Artikel enthält die Formeln zum Ausführen diese Berechnungen für den MM_TEXT Zuordnungsmodus erforderlich. Sie haben eine neue Formel berechnen die Größe Schriftart in einem anderen Zuordnungsmodus verwendet ableiten.

Weitere Informationen

Um die logische Höhe zu berechnen, verwenden Sie die folgende Formel:
                                Point Size * LOGPIXELSY
   height = Internal Leading + -------------------------
                                          72
				
LOGPIXELSY ist die Anzahl der Pixel in einer logischen Zoll auf dem Gerät enthalten. Dieser Wert wird durch Aufrufen der Funktion GetDeviceCaps() mit LOGPIXELSY Index abgerufen. Der Wert 72 ist erhebliche, da 1 Zoll auf 72 Punkt enthält.

Das Problem durch diese Berechnung ist, dass es keine Methode zum Ermitteln der internen führende für die Schriftart, da es noch nicht erstellt wurde. Um zu diese Schwierigkeiten zu umgehen, verwenden Sie die folgende Variante der Formel:
            -(Point Size * LOGPIXELSY)
   height = --------------------------
                         72
				
diese Formel kann auch wie folgt geschrieben werden:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);
				
eine Anwendung ruft den CreateFont() oder CreateFontIndirect() Funktionen und gibt einen negativen Wert für die Parameter für die Höhe, die Schriftartzuordnung bietet die größte Übereinstimmung für die Zeichenhöhe der statt die Zellenhöhe. Der Unterschied zwischen der Zellenhöhe und die Zeichenhöhe ist das interne vorangestellte, wie durch das folgende Diagramm veranschaulicht:
   ----------  <------------------------------
   |        |           |- Internal Leading  |
   | |   |  |  <---------                    |
   | |   |  |        |                       |- Cell Height
   | |---|  |        |- Character Height     |
   | |   |  |        |                       |
   | |   |  |        |                       |
   ----------  <------------------------------
				
die folgende Formel berechnet die Punktgröße für eine Schriftart:
                (Height - Internal Leading) * 72
   Point Size = --------------------------------
                           LOGPIXELSY
				
aus TEXTMETRIC -Datenstruktur werden die Höhe und interne vorangestellte Werte abgerufen. Der LOGPIXELSY-Wert wird von der GetDeviceCaps -Funktion ermittelt, wie oben beschrieben.

Runden der berechnete Schriftgrad auf die nächste Ganzzahl. Die Windows- MulDiv() -Funktion rundet das Ergebnis und ist eine hervorragende Wahl die vorherige Berechnung durchführen.

Eigenschaften

Artikel-ID: 74299 - Geändert am: Dienstag, 21. November 2006 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Software Development Kit 3.1
  • Microsoft Win32 Application Programming Interface, wenn verwendet mit:
    • Microsoft Windows NT Server 3.5
    • Microsoft Windows NT Server 3.51
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Workstation 3.5
    • Microsoft Windows NT Workstation 3.51
    • Microsoft Windows NT Workstation 4.0 Developer Edition
Keywords: 
kbmt kbinfo KB74299 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 74299
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com