Форма VCL и настройка параметров шрифта в русской версии MS Windows - PullRequest
1 голос
/ 30 марта 2010

У меня есть приложение Borland C ++ Builder VCL (поэтому я пока не работаю с Unicode), Я хочу предоставить простой перевод текста заголовка элемента управления на русский язык во время выполнения.

Я могу легко использовать EnumChildWindows , чтобы получить заголовок на английском языке, затем найти перевод и заменить текст заголовка, используя SetWindowText . Это хорошо работает для моих западноевропейских переводов, где мне не нужно беспокоиться о шрифте. Но я не уверен, как русская версия Windows, а затем VCL обрабатывает 8-битные кириллические наборы символов.

В настоящее время все элементы управления VCL имеют настройки шрифта:

Charset=DEFAULT_CHARSET
name=MS Sans Serif

Правильно ли я считаю, что когда моя программа работает под русской версией Windows, набор символов будет кириллическим с настройкой DEFAULT_CHARSET , поэтому мне не нужно изменить настройки шрифта во всех моих элементах управления?

Если мне нужно изменить шрифт (во время выполнения), должна ли функция Windows API SendMessage (hwnd, WM_SETFONT, (WPARAM) hFont, TRUE) работать с элементами управления VCL? Я попытался использовать CreateFont () и SendMessage (.. WM_SETFONT ..) с RUSSIAN_CHARSET и шрифтом кириллицы. Это, кажется, не имеет никакого эффекта, он сохраняет шрифт, который был установлен для элемента управления в форме во время разработки (даже ANSI_CHARSET и стандартное лицо шрифта, установленного в Windows, не влияют на шрифт элементов управления), поэтому я искал подтверждение того, что мне не придется изменять шрифт элементов управления, или скажите мне какой-нибудь метод VCL для установки всех параметров. контролирует настройки шрифта во время выполнения.

1 Ответ

1 голос
/ 09 марта 2011

Нет необходимости заново изобретать велосипед. Почему вы не используете инструменты среды интеграции переводов, которые поставляются с Borland C ++ Builder? Существует мастер, который поможет вам с переводами и создаст специальный файл ресурсов, который будет содержать перевод всех текстовых строк в вашем приложении. Затем программа проверит язык системы и доступные файлы языковых ресурсов при запуске и автоматически использует соответствующий язык. Обратитесь к справочной системе C ++ Builder с индексом - «Интегрированная среда перевода (ITE)» для более подробного описания процесса.

...