Файл ресурсов Windows (.rc): RTEXT и LTEXT со стилем WS_EX_RIGHT

При локализации диалогов в файле .rc я обнаружил следующую разницу в определении статического элемента управления с выравниванием по правому краю:

  • в исходном файле ресурсов статический элемент управления в DIALOGEX определяется следующим образом:
    LTEXT "some text",IDC_STATIC,14,24,17,8,0,WS_EX_RIGHT
  • в переведенном файле ресурсов тот же статический элемент управления определен следующим образом:
    RTEXT "some translated text",IDC_STATIC,14,24,17,8,0

В обоих файлах ресурсов текст отображается с выравниванием по правому краю, как и ожидалось.

Есть ли разница между обоими способами? Или LTEXT с WS_EX_RIGHT — это просто другой способ, чем RTEXT, для отображения текста, выровненного по правому краю?

Я использую текущую версию Visual Studio 2022.

На самом деле, похоже, есть некоторая избыточность. В редакторе ресурсов свойство «Выровнять текст» определяет, будет ли вы получать RTEXT, CTEXT или LTEXT, а свойство «Выровнять текст по правому краю» контролирует наличие стиля WS_EX_RIGHT.

Если вы определите статический текстовый элемент как LTEXT, а затем присвоите ему стиль WS_EX_RIGHT, то он будет выровнен по правому краю, как описано в разделе Расширенные стили окон.

OldBoy 05.07.2024 12:31

Используйте WS_EX_RIGHT только для окон, которые отображают текст на языке с порядком чтения справа налево (например, арабский, иврит, фарси и т. д.). L/RTEXT просто влияет на выравнивание текста, а не на порядок чтения. Может показаться, что это выравнивает западный текст, но в результате возникают странности, связанные с пунктуацией.

Hans Passant 05.07.2024 13:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В соответствии с элементом управления LTEXT , элементом управления CTEXT и элементом управления RTEXT, они имеют SS_LEFT, SS_CENTER и SS_RIGHT соответственно.

И согласно WS_EX_RIGHT,

Константа/значение Описание WS_EX_RIGHT 0x00001000L Окно имеет общие свойства «выравнивания по правому краю». Это зависит от класса окна. Этот стиль имеет эффект, только если языком оболочки является иврит, арабский или другой язык, поддерживающий выравнивание порядка чтения; в противном случае стиль игнорируется. Использование стиля WS_EX_RIGHT для статических или редактируемых элементов управления имеет тот же эффект, что и использование стиля SS_RIGHT или ES_RIGHT соответственно. Использование этого стиля с элементами управления «кнопки» имеет тот же эффект, что и использование стилей BS_RIGHT и BS_RIGHTBUTTON.

Другие вопросы по теме

Похожие вопросы

Как получить MAC-адрес моего локального сетевого интерфейса с помощью сокета Win или удаленного IP-адреса
Как прочитать необработанный диск без блокировки/размонтирования тома, используя Win32 API?
Информация о растровом изображении регулярно возвращает серию одних и тех же неправильных значений, прежде чем возвращать правильные цвета пикселей
Запуск приложения с правами обычного пользователя из экземпляра с правами администратора
Как сохранить вывод сценария Python в действиях GitHub, запущенных в последней версии Windows?
Как перечислить потоки с помощью типов CreateToolhelp32Snapshot и Python?
Как связать приложения Rusqlite с пользовательскими сборками SQLite в Windows?
Какой API возвращает сообщение для NTSTATUS?
«Запуск с PowerShell» выдает ошибку политики выполнения, но запуск непосредственно в окне PowerShell не дает
Могу ли я держать ручку открытой в течение всего срока службы программы?