Internationale Schriftartenaufzählung und -auswahl

In jeder Hauptversion von Windows werden Schriftarten hinzugefügt, um internationale Sprachen und Skripts zu unterstützen. Die 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

Um internationale Schriftarten in Ihrer Anwendung aufzulisten, können Sie die Funktion EnumFontFamiliesEx 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. Um EnumFontFamiliesEx aufzurufen, können Sie entweder einen Schriftartnamen oder einen Zeichensatz angeben oder nach dem, was verfügbar ist, fragen. Wenn Sie den Schriftartnamen des LOGFONT auf NULL festlegen, werden alle Schriftartnamen aufgelistet. Wenn Sie das Zeichensatzfeld auf DEFAULT_CHARSET festlegen, werden alle Zeichensätze aufgelistet.

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, 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 zusätzlichen Unicode-Ebenen unterstützt.

ChooseFont

Sie können die ChooseFont-Funktion verwenden, um ein allgemeines Dialogfeld anzuzeigen, in dem der Benutzer internationale Schriftarten basierend auf Zeichensatz auswählen kann. Sie können eines von drei Flags angeben, um basierend auf dem Zeichensatz zu bestimmen, welche Schriftarten im Dialogfeld ChooseFont angezeigt werden: CF_SCRIPTSONLY, CF_SELECTSCRIPT oder CF_NOSCRIPTSEL.

Das flag CF_SCRIPTSONLY weist die API an, Schriftarten für alle Zeichensätze aufzulisten, die nicht Symbol oder OEM sind.

Wenn Sie nur Schriftarten anzeigen möchten, die einen bestimmten Zeichensatz abdecken, müssen Sie das Flag CF_SELECTSCRIPT angeben. Initialisieren Sie vor dem Aufrufen von ChooseFont das Feld lfCharSet 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 flag CF_INITTOLOGFONTSTRUCT angeben.

Schließlich können Sie wie bei jedem anderen Feld im Dialogfeld Schriftart ein leeres Skriptlistenfeld anzeigen. Diese Funktion ist nützlich, wenn der Benutzer mehrere verschiedene Schriftarten mit mehreren Zeichensätzen hervorgehoben hat. In diesem Fall würden Sie ChooseFont mit dem flag CF_NOSCRIPTSEL aufrufen.

Ab Windows 7 implementiert ChooseFont Unterstützung für das Ausblenden von Schriftarten in Schriftartenauswahllisten. ChooseFont listet nur die angezeigten Schriftarten auf und filtert die ausgeblendeten Schriftarten heraus, 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. Dies entspricht dem Verhalten von ChooseFont vor Windows 7. Ausführliche Informationen zu Den Verhaltensunterschieden in Windows 7 für die ChooseFont-Funktion finden Sie unter Allgemeines Dialogfeld "ChooseFont() Win32" im Windows 7-Anwendungsqualitäts-Cookbook. Informationen zu den Unterschieden bei der Endbenutzererfahrung in Windows 7 finden Sie unter ChooseFont-Funktion und 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 "Scenic"

Windows 7 führt das Windows Scenic Ribbon ein, das eine Reihe von Steuerelementen enthält, die auf die Schriftartenauswahl ausgerichtet sind. Diese Schriftartsteuerelemente unterstützen das neue Verhalten beim Ausblenden von Schriftarten in Windows 7. Sie können diese Schriftartensteuerelemente verwenden, um nur die angezeigten Schriftarten aufzulisten 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 Scenic Ribbon auf einer Plattform vor Windows 7 ausgeführt wird.

 

EnumFontFamiliesEx

ChooseFont

CHOOSEFONT-Struktur

Schriftartsteuerelemente im Windows-Menüband "Scenic"

Allgemeines Dialogfeld "ChooseFont() Win32"