Pregunta

Tengo una aplicación de Borland C ++ Builder VCL (así que no estoy trabajando con Unicode todavía), Quiero ofrecer una simple traducción del texto de la leyenda controles a Rusia en tiempo de ejecución.

Me puede utilizar simplemente EnumChildWindows para obtener el título de Inglés, a continuación, buscar la traducción y reemplazar el texto del título usando SetWindowText . Esto funciona bien para mis traducciones de Europa occidental en el que no tiene que preocuparse por el tipo de letra. Pero no estoy seguro de cómo la versión rusa de Windows y luego mangos VCL 8 bits juegos de caracteres cirílicos.

En la actualidad todos los controles VCL tienen la configuración de fuente:

Charset=DEFAULT_CHARSET
name=MS Sans Serif

Estoy en lo cierto al suponer que cuando mi programa se ejecuta en una versión en ruso de Windows la juego de caracteres será cirílico con el DEFAULT_CHARSET configurar así que no necesitaré cambiar la configuración de fuente en todos mis controles?

Si tengo que cambiar la fuente (en tiempo de ejecución), si la función de la API de Windows SendMessage (hWnd, WM_SETFONT, (WPARAM) HFONT, TRUE) trabajo con controles VCL? He intentado usar el CreateFont () y SendMessage (.. WM_SETFONT ..) con RUSSIAN_CHARSET y una cara de la fuente cirílico. Esto no parece tener ningún efecto, se mantiene el tipo de letra que se fijó para el control en el formulario en tiempo de diseño (Incluso ANSI_CHARSET y una cara estándar fuente instalada en Windows no afecta a los controles de la fuente), así que busca la confirmación de que no voy a tener que cambiar el tipo de letra de los controles, o de lo contrario dime algún método VCL para ajustar todos los configuración de fuente diversos controles en tiempo de ejecución.

No hay solución correcta

Otros consejos

No hay necesidad de reinventar la bicicleta. ¿Por qué no utilizar herramientas de integración de traducción de entorno que se proporcionan con Borland C ++ Builder? Hay un asistente que le ayudará con traducciones y hará que un archivo de recurso especial que contendrá traducción de todas las cadenas de texto en su aplicación. A continuación, el programa, comprobará idioma del sistema y archivos de recursos de idioma dotados en el arranque, y utilizará automáticamente el idioma apropiado. Compruebe el sistema de ayuda C ++ Builder con el índice - "Integrated entorno de traducción (ITE)" para la descripción de procesos más detallados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top