Freigeben über


Verwenden der Schriftartbindung in Rich Edit-Steuerelementen

Microsoft Rich Edit 3.0 weist Nur-Text-Zeichen je nach Kontext einen Zeichensatz zu. Beispiele:

  • Griechische Zeichen werden GREEK_CHARSET zugewiesen.
  • Hangul-Symbole werden HANGUL_CHARSET zugewiesen.
  • Chinesische Zeichen werden SHIFTJIS_CHARSET zugewiesen, wenn Kanazeichen in der Nähe gefunden werden, oder GB2312_CHARSET , wenn keine Kana in der Nähe gefunden werden.
  • In jedem Fall werden nicht neutrale ANSI-Zeichen ANSI_CHARSET zugewiesen.

Hinweis

Das Rich-Edit-Steuerelement verwendet intern Unicode, daher unterscheidet sich diese Verwendung von Zeichensätzen von der ursprünglichen, die in Schriftartspezifikationen verwendet wurde. Die CHARFORMAT-Struktur hat jedoch eine klar definierte Stelle für den Zeichensatz.

 

Neutrale Zeichen wie Leerzeichen und Ziffern werden je nach Kontext einem Zeichensatz zugewiesen. Beispielsweise ruft ein leerer, der von Zeichen desselben Zeichensatzes umgeben ist, diesen Zeichensatz ab. Neutralen und Ziffern, die für bidirektionalen Text verwendet werden, werden zeichensätze auf eine Weise zugewiesen, die auf dem bidirektionalen Unicode-Algorithmus basiert.

Wichtige Informationen

Technologien

Voraussetzungen

  • C/C++
  • Programmierung der Windows-Benutzeroberfläche

Anweisungen

Verwenden der Schriftartbindung in einem Rich Edit-Steuerelement

Nachdem Zeichensätze zugewiesen wurden, scannt Rich Edit den Text um die Einfügemarke vorwärts und rückwärts, um die nächsten Schriftarten zu finden, die für die Zeichensätze verwendet wurden. Wenn für einen Zeichensatz keine Schriftart gefunden wird, verwendet Rich Edit die Schriftart, die vom Client für diesen Zeichensatz ausgewählt wurde. Wenn der Client keine Schriftart für den Zeichensatz angegeben hat, verwendet Rich Edit die Standardschriftart für diesen Zeichensatz. Wenn der Client eine andere Schriftart möchte, kann der Client sie jederzeit ändern, aber dieser Ansatz funktioniert die meiste Zeit. Die aktuellen Standardschriftarten basieren auf der folgenden Tabelle. Beachten Sie, dass die Standardschriftarten pro Prozess festgelegt werden, und es gibt separate Listen für die Benutzeroberflächennutzung und nicht für die Benutzeroberflächennutzung.

Sprache Name der Ui-Schriftart Schriftgrad der Benutzeroberfläche Name der Nicht-UI-Schriftart Nicht-UI-Schriftgrad
Western, CE, ME, Vietnamesisch Tahoma 8 Arial 10
Japanisch MS UI Gothic 9 MS P Gothic 10
Koreanisch Gulim 9 Gulim 9
Chinesisch (vereinfacht) Simsun 9 SimSun 10
Chinesisch (traditionell) PMingLiU 9 PMingLiU 9
Thailändisch MS Sans Serif 8 Tahoma 14
Symbole Wingdings 8 Wingdings 10
Devanagari Mangal 8 Mangal 10
Tamilisch Latha 8 Latha 10
Georgisch, Armenisch Arial Unicode 8 Arial Unicode 10

 

Daher ermöglicht Rich Edit in der Standardschriftbindungstabelle (Einträge haben einen Zeichensatz, Schriftnamen und Größe), dass ANSI_CHARSET mehrere Zeichensätze abgleichen können, während der entsprechende Zeichensatz 1:1 mit anderen Schriftarten übereinstimmt. Genauer gesagt verwendet Rich Edit die ANSI_CHARSET Wahl, wenn keine andere Alternative gefunden wird. Sie können eine feinere Granularität angeben. Weisen Sie beispielsweise eine bestimmte ARABIC_CHARSET für arabische Ausführungen, eine bestimmte griechische Schriftart für griechische Ausführungen usw. zu. Diese feinere Granularität wird auch verwendet, wenn eine Schriftart mit dem gewünschten Zeichensatzstempel irgendwo im Dokument vor dem Bereich gefunden wird, der schriftartgebunden ist.

Beachten Sie, dass Rich Edit derzeit keine fehlende glyphe in einer Schriftart behandelt, die einen Zeichensatz unterstützt, aber unvollständig ist. Rich Edit weiß zur Anzeigezeit in einem komplexen Skript, dass eine solche Glyphe fehlt, führt aber nicht dazu, dass der Sicherungsspeicher eine neue Schriftart verwendet. Normalerweise wird dies durch die zugrunde liegende Schriftartverknüpfung des Betriebssystems erreicht.

Bemerkungen

Rich Edit 4.1: Um die Standardschriftart für ein Skript festzulegen, rufen Sie EM_SETCHARFORMAT mit CHARFORMAT2 auf, und geben Sie Werte für die Member yHeight, bCharSet, bPitchAndFamily, szFaceName und lcid an . Um die Standardschriftart für eine bestimmte Codepage abzurufen, rufen Sie außerdem EM_GETCHARFORMAT mit CHARFORMAT2 auf, und geben Sie Werte für die Elemente bCharSet und lcid an .

Verwenden von Rich Edit-Steuerelementen

Demo zu allgemeinen Windows-Steuerelementen (CppWindowsCommonControls)