Supongamos que tiene una cadena con texto en dos o más scripts. Cuando utiliza una función GDI como TextOut
, (versiones modernas de) Windows hará "font-linking". Es decir, GDI dibujará lo que pueda con su fuente seleccionada y dibujará el resto en una fuente apropiada que elija automágicamente. Por ejemplo, si parte de su texto está en inglés (usando el alfabeto romano), y parte de él es chino (usando caracteres CJK), y tiene seleccionado Arial, la porción en inglés se dibujará en Arial, y la parte china dibujar en otra fuente que tenga los glifos CJK.¿Es posible determinar las fuentes que Windows elige para el enlace de fuentes?
Mi pregunta es, ¿hay alguna manera de determinar qué fuentes elegiría TextOut
(o si las eligió) para el enlace de la fuente?
Tengo que dibujar algo de texto con la API de Uniscribe de bajo nivel, que no hace un enlace de fuente automático. Implementé mi propio enlace de fuentes, pero a veces mi algoritmo elige una fuente diferente a la que hace TextOut
para el mismo texto. Intento entender mejor el algoritmo de Windows, pero no soy muy bueno identificando fuentes a la vista (especialmente en guiones desconocidos).
Gracias, eso es un recurso excelente. Pero he leído en otro blog que esas claves de registro están ahí solo por compatibilidad con versiones anteriores y que en realidad ya no impulsan el enlace de fuentes. Por ejemplo, en mi máquina, TextOut hará enlaces de fuentes para fuentes base que no están en esa parte del registro. Y tampoco es una alternativa a la fuente, ya que las fuentes que se seleccionan para los otros scripts son diferentes dependiendo de la fuente base. –
Revisa IMLangFontLink: http://msdn.microsoft.com/en-us/library/aa767872%28v=VS.85%29.aspx –
Utilicé IMLangFontLink2 en una iteración anterior, pero causó problemas cuando mezclé scripts LTR con scripts RTL. Creo que es una solución bastante antigua y probablemente siga siendo compatible con versiones anteriores. –