Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2019, 20:52   #1
UserName963
Новичок
Джуниор
 
Регистрация: 02.02.2019
Сообщений: 2
По умолчанию смена кодировки вывода

Задача
В MFC-приложении используется диалоговое окно и функция SetWindowText(). Для вывода текста в окно необходимо менять при выполнении программы кодировку Windows-1251 на Windows-1250 (для вывода символов чешских и румынских).
При работе с консольным приложением все происходит элементарно, но с MFC просто тупик!
Использую "бородатый" MSVC6.0.
Кто сталкивался - помогите!
UserName963 вне форума Ответить с цитированием
Старый 03.02.2019, 09:33   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Попробовать двухбайтную кодировку (функция SetWindowTextW), а уже в исходнике написать строку в нужной кодировке. В более поздних студиях строка задается L"здесь чешский текст". Или задать строки в ресурсах и загружать их LoadStringом
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 03.02.2019, 10:03   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от UserName963 Посмотреть сообщение
При работе с консольным приложением все происходит элементарно, но с MFC просто тупик!
Так в чем проблема - не меняется кодировка или что?
А в принципе да, переходите на уникод и не парьтесь.
waleri вне форума Ответить с цитированием
Старый 04.02.2019, 12:59   #4
UserName963
Новичок
Джуниор
 
Регистрация: 02.02.2019
Сообщений: 2
По умолчанию кодировки W-1251/1250

Дело в том, что результатом работы приложения является графическое поле на эмуляторе экрана в котором входные данные - ввод мультиязыковой строки с клавиатуры (под Виндой). С помощью адаптированного знакогенератора под этот-же эмулятор пиксельного экрана выводятся данные символы. Необходимо в диалоговое окно сначала ввести символьную строку, а затем сделать преобразование. В приложении MFC MSVC минуя диалоговое окно преобразование с клавиатурного ввода на эмулятор - все красиво и гладко, но через диалог с "окном микрософта" - танец с саблями! Пишешь в консольном приложении, оперируешь байтами - меняешь кодировки, как хочется, все логично, но увы - нет эмулятора графического поля (((. Как же все криво в MFC....
UserName963 вне форума Ответить с цитированием
Старый 04.02.2019, 13:16   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

А вы уверенны, что это поле рисует MFC?
Цитата:
Сообщение от UserName963 Посмотреть сообщение
С помощью адаптированного знакогенератора
Эм, что за знакогенератор? MFC рисует шрифтами установленными в систему. Если вы используете свои наработки, то при чем здесь MFC?
Цитата:
Сообщение от UserName963 Посмотреть сообщение
Необходимо в диалоговое окно сначала ввести символьную строку, а затем сделать преобразование
Ну так сделайте преобразование, что мешает?
Цитата:
Сообщение от UserName963 Посмотреть сообщение
Как же все криво в MFC....
С MFC все в порядке, не надо ляля.
Ничего не мешает оперировать байтами и менять кодировки.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена кодировки fate C# (си шарп) 4 09.02.2013 18:04
Смена кодировки Prizrak86 C# (си шарп) 1 16.11.2011 19:59
Смена кодировки на UTF8 в VBScript Zeron JavaScript, Ajax 1 29.05.2011 22:21
смена кодировки Lemon2009 Общие вопросы по Java, Java SE, Kotlin 5 11.03.2010 16:54
Смена кодировки AxenicX Общие вопросы C/C++ 2 11.12.2009 22:45