Ищу пати Проблема с ImGui::ImputText и кириллицей

Статус
В этой теме нельзя размещать новые ответы.
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
Здарова.
У меня есть проблема, связана она с таким компонентом ImGui как InputText, именно он.
В него можно ввести латинский символ или цифру, все будет хорошо, но если ввести русский символ или любой другой символ юникода - этот символ замениться либо на знак вопроса либо на маленькую букву а с черточкой.
Пытался переводить в кодировку UTF8, но результата нет.
Мастера в этом деле, помогите, пожалуйста)
Спасибо:wink:
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
27 Май 2017
Сообщения
136
Реакции[?]
30
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Шрифт пропиши
Чтобы был не стандартный ImGui

(Вроде так io.Fonts->AddFontFromFileTTF("D:\\Windows\\Fonts\\tahoma.ttf", 14.0f, NULL, io.Fonts->GetGlyphRangesCyrillic()); )
 
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
Шрифт с кириллицей уже был и ранее.
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Tahoma.ttf", FontSize, &font_config, io.Fonts->GetGlyphRangesCyrillic());
setlocale попробовал только что, не работает, я как то и не сомневался, вроде, setlocale не для этого предназначен.

Может, вы не совсем поняли, что я хочу.
Я использую InputText так:
char buff[256];
InputText(u8"Текст", buff, sizeof(buff));
Название самого инпат текста отображается нормально, русскими символами, как и положено.
Проблема собственно в том, что если я ввожу в само поле русские символы, они отображаются вопросительными знаками.
Скриншот:
 
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
ImGui::InputText("UTF8", buf, IM_ARRAYSIZE(buf));
А чем это, отличается от этого(кроме sizeof)?
InputText(u8"Текст", buff, sizeof(buff));
Вообщем, и это не работает.
Или, может быть, я что то не так использую?
 
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
А он обязателен, если у меня постоянно стоит такой шрифт?
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Tahoma.ttf", FontSize, &font_config, io.Fonts->GetGlyphRangesCyrillic());
Кириллица присутствует.
Пуш фонт вроде не нужен, но, если я ошибаюсь - поправьте.
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
Оформите тему в соответствие с правилами форума. А именно пунктом 1.2
 
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
999
Реакции[?]
1,209
Поинты[?]
3K
только пусть это будет нашим маленьким секретом:
Код:
case WM_CHAR:
         wchar_t wch;
        MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, (char*)&wParam, 1, &wch, 1);
        io.AddInputCharacter(wch);
        break;
 
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
только пусть это будет нашим маленьким секретом:
Код:
case WM_CHAR:
         wchar_t wch;
        MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, (char*)&wParam, 1, &wch, 1);
        io.AddInputCharacter(wch);
        break;
Нашел это так же тут)
https://yougame.biz/threads/28221/#post-215344
Надеялся, что найду более гуманный способ, но, похоже, что нет, прийдеться использовать этот)
Я так понимаю, это WindowProc?
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
30 Янв 2018
Сообщения
79
Реакции[?]
6
Поинты[?]
0
Проблема решена!:smile:
Огромное спасибо всем, кто пытался помочь, и Крайслеру(https://yougame.biz/members/238/) за действенный способ.
Тему можно закрыть/удалить.:blush:
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу