Cómo usar el enlace de fuentes en controles de edición enriquecida

Microsoft Rich Edit 3.0 asigna un juego de caracteres a caracteres de texto sin formato en función de su contexto. Ejemplos:

  • Se asignan caracteres griegos GREEK_CHARSET.
  • Se asignan símbolos hangul HANGUL_CHARSET.
  • Se asignan caracteres chinos SHIFTJIS_CHARSET si se encuentran caracteres kana cerca o GB2312_CHARSET si no se encuentra ningún kana cerca.
  • Los caracteres ANSI no neutros se asignan ANSI_CHARSET en cualquier caso.

Nota:

El control de edición enriquecido usa Unicode internamente, por lo que este uso de juegos de caracteres difiere del original que se usa en las especificaciones de fuente. Pero la estructura CHARFORMAT tiene un lugar bien definido para el juego de caracteres.

 

A los caracteres neutros, como los espacios en blanco y los dígitos, se les asigna un juego de caracteres en función de su contexto. Por ejemplo, un espacio en blanco rodeado por caracteres del mismo juego de caracteres obtiene ese juego de caracteres. A los dígitos y neutros que se usan para el texto bidireccional se les asignan juegos de caracteres de una manera que se basa en el algoritmo bidireccional Unicode.

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • Programación de la interfaz de usuario de Windows

Instrucciones

Usar el enlace de fuentes en un control de edición enriquecida

Una vez asignados los juegos de caracteres, Rich Edit examina el texto alrededor del punto de inserción hacia delante y hacia atrás para buscar las fuentes más cercanas que se han usado para los juegos de caracteres. Si no se encuentra ninguna fuente para un juego de caracteres, Rich Edit usa la fuente elegida por el cliente para ese juego de caracteres. Si el cliente no ha especificado una fuente para el juego de caracteres, Rich Edit usa la fuente predeterminada para ese juego de caracteres. Si el cliente quiere alguna otra fuente, el cliente siempre puede cambiarla, pero este enfoque funcionará la mayor parte del tiempo. Las opciones de fuente predeterminadas actuales se basan en la tabla siguiente. Tenga en cuenta que las fuentes predeterminadas se establecen por proceso y hay listas independientes para el uso de la interfaz de usuario y para el uso que no es de la interfaz de usuario.

Idioma Nombre de fuente de la interfaz de usuario Tamaño de fuente de la interfaz de usuario Nombre de fuente que no es de interfaz de usuario tamaño de fuente que no es de interfaz de usuario
Occidental, CE, ME, vietnamita Tahoma 8 Arial 10
Japonés MS UI Gothic 9 MS P Gothic 10
Coreano Gulim 9 Gulim 9
Chino simplificado Simsun 9 SimSun 10
Chino tradicional PMingLiU 9 PMingLiU 9
Tailandés MS Sans Serif 8 Tahoma 14
Símbolos Wingdings 8 Wingdings 10
Devanagari Mangal 8 Mangal 10
Tamil Latha 8 Latha 10
Georgiano, armenio Arial Unicode 8 Arial Unicode 10

 

Por lo tanto, en la tabla de enlace de fuentes predeterminada (las entradas tienen un juego de caracteres, un nombre de fuente y un tamaño), La edición enriquecida permite que ANSI_CHARSET coincida con varios juegos de caracteres, mientras que el juego de caracteres adecuado coincide con otras fuentes de uno a uno. De forma más precisa, la edición enriquecida usa la opción ANSI_CHARSET siempre que no se encuentre ninguna otra alternativa. Podrá especificar una granularidad más fina que esta; por ejemplo, asigne un ARABIC_CHARSET específico para las ejecuciones en árabe, una fuente griega específica para ejecuciones griegas, etc. Esta granularidad más fina también se usará si se encuentra una fuente con el sello de juego de caracteres deseado en algún lugar del documento antes del área enlazada a la fuente.

Tenga en cuenta que La edición enriquecida no controla actualmente un glifo que falta en una fuente que dice admitir un juego de caracteres, pero está incompleto. En tiempo de visualización en un script complejo, Rich Edit termina sabiendo que falta un glifo de este tipo, pero no hace que la memoria auxiliar use una nueva fuente. Normalmente, la vinculación de fuente subyacente del sistema operativo lo logrará.

Comentarios

Rich Edit 4.1: Para establecer la fuente predeterminada para un script, llame a EM_SETCHARFORMAT con CHARFORMAT2, especificando valores para los miembros yHeight, bCharSet, bPitchAndFamily, szFaceName y lcid . Además, para obtener la fuente predeterminada para una página de códigos específica, llame a EM_GETCHARFORMAT con CHARFORMAT2, especificando valores para los miembros bCharSet y lcid .

Usar controles de edición enriquecida

Demostración de controles comunes de Windows (CppWindowsCommonControls)