Internationale Schriftartenenumeration und -auswahl

In jeder Hauptversion von Windows werden Schriftarten hinzugefügt, um internationale Sprachen und Skripts zu unterstützen. Informationen zu den Schriftarten, die seit Windows 2000 in jeder Windows-Version hinzugefügt wurden, sowie die unterstützten Skripts, Regionen und Sprachen finden Sie unter Skript- und Schriftartunterstützung in Windows.

EnumFontFamiliesEx

Zum Aufzählen von internationalen Schriftarten in Ihrer Anwendung können Sie die EnumFontFamiliesEx-Funktion verwenden. Mit EnumFontFamiliesEx können Sie Schriftarten basierend auf dem Namen der Schriftart und dem Zeichensatz aufzählen, indem Sie einen Zeiger auf eine LOGFONT-Struktur übergeben, die den Schriftartnamen und Zeichensatzinformationen enthält. Zum Aufrufen von EnumFontFamiliesEx können Sie entweder einen Schriftartnamen oder ein Zeichensatz angeben oder nach dem verfügbaren Namen fragen. Wenn Sie den Schriftartnamen von LOGFONT auf NULL festlegen, werden alle Schriftartnamen aufzählt. Wenn Sie das Zeichensatzfeld auf DEFAULT _ CHARSET festlegen, werden alle Zeichensets aufzählt.

Beachten Sie, dass Zeichensätze ein Legacybegriff sind, der Prä-Unicode-Zeichensätzen entspricht. Derzeit gibt es keinen Mechanismus zum Aufzählen von Schriftarten, die beliebige Skripts oder Zeichenbereiche in Unicode unterstützen. Die von EnumFontFamExProc übergebene NEWTEXTMETRICEX-Struktur enthält die FONTSIGNATURE-Struktur, die detailliertere Deklarationen enthält, die vom Schriftartentwickler bereitgestellt werden, um zu erfahren, welche Codepages und welche Unicode-Bereiche die Schriftart unterstützt. Um genauer zu bestimmen, welche Zeichenbereiche eine bestimmte Schriftart unterstützt, wählen Sie die Schriftart in einem Gerätekontext aus, und rufen Sie GetFontUnicodeRanges auf. Beachten Sie, dass diese API keine ergänzenden Unicode-Ebenen unterstützt.

Wählen SieFont aus.

Sie können die Funktion ChooseFont verwenden, um ein allgemeines Dialogfeld anzuzeigen, in dem der Benutzer internationale Schriftarten basierend auf charset auswählen kann. Sie können eines von drei Flags angeben, um basierend auf charset festzulegen, welche Schriftarten im Dialogfeld ChooseFont angezeigt werden: CF _ SCRIPTSONLY, CF _ SELECTSCRIPT oder CF _ NOSCRIPTSEL.

Das CF _ SCRIPTSONLY-Flag weist die API an, Schriftarten für alle Zeichensätze auflisten, die nicht Symbol oder OEM sind.

Wenn Sie nur Schriftarten anzeigen möchten, die ein bestimmtes Zeichensatz abdecken, müssen Sie das Flag CF _ SELECTSCRIPT angeben. Initialisieren Sie vor dem Aufruf von ChooseFontdas lfCharSet-Feld der LOGFONT-Struktur. Wenn Sie nur das Zeichensatz angeben möchten, legen Sie die anderen Felder der LOGFONT-Struktur auf NULL fest. Damit ChooseFont die LOGFONT-Struktur betrachten kann, müssen Sie auch das CF _ INITTOLOGFONTSTRUCT-Flag angeben.

Schließlich können Sie wie bei jedem anderen Feld im Dialogfeld Schriftart auch ein leeres Skriptlistenfeld anzeigen. Diese Funktion ist nützlich, wenn der Benutzer mehrere verschiedene Schriftarten hervorgehoben hat, die sich über mehrere Zeichensets erstreckt. In diesem Fall würden Sie ChooseFont mit dem CF _ NOSCRIPTSEL-Flag aufrufen.

Ab Windows 7 implementiert ChooseFont Unterstützung für das Ausblenden von Schriftarten in Schriftartauswahllisten. Wählen SieFont aus, um nur die angezeigten Schriftarten auflisten und die ausgeblendeten Schriftarten herausfiltern, während Schriftarten im Listenfeld angezeigt werden. Das zusätzliche Flag (CF _ INACTIVEFONTS) im Flags-Member der ChooseFont-Struktur wird hinzugefügt, damit Sie alle installierten Schriftarten in der Schriftartenliste anzeigen können, wie sich ChooseFont vor Windows 7 verhalten hat. Details zu den Verhaltensunterschieden in Windows 7 für die ChooseFont-Funktion finden Sie unter ChooseFont() Win32 Common Dialog im Windows 7 Application Quality Cookbook. Informationen zu den Unterschieden bei der Endbenutzererfahrung in Der Artikel 7 finden Sie unter ChooseFont function (ChooseFont-Funktion) und choosefont Windows structure (CHOOSEFONT-Struktur).

Beachten Sie, dass Zeichensätze ein Legacybegriff sind, der Prä-Unicode-Zeichensätzen entspricht. Derzeit gibt es keinen Mechanismus zum Filtern von Schriftarten basierend auf Unicode-Skripts oder Zeichenbereichen.

Schriftartsteuerelemente im Windows Menüband

Windows 7 führt das Windows Menüband ein, das eine Reihe von Steuerelementen für die Schriftartauswahl enthält. Diese Schriftartsteuerelemente unterstützen das neue Windows 7-Schriftarten-Hiding-Verhalten. Sie können diese Schriftartsteuerelemente verwenden, um nur angezeigte Schriftarten auflisten und dem Benutzer die Auswahl der Schriftart zu ermöglichen.

Hinweis

Die Unterstützung für das Ausblenden von Schriftarten ist nicht verfügbar, wenn das Windows-Menüband auf einer Plattform vor Windows 7 ausgeführt wird.

EnumFontFamiliesEx

Wählen SieFont aus.

CHOOSEFONT-Struktur

Schriftartsteuerelemente im Windows Menüband

Allgemeines Dialogfeld "ChooseFont() Win32"