Я изменяю приложение Windows CE для отображения различных языков через Unicode.Windows CE MessageBox не отображает текст в Юникоде и прозрачность значков
Изменив шрифт в файле ресурсов, мне удалось отобразить его одним нажатием кнопки, но он не может корректно отображать «παρίσταταί» в MessageBox.
Результат выглядит следующим образом:
Я нашел открытую замену источника XMessageBox и получил это работает в Windows CE с некоторыми незначительными изменениями. Результат таков:
Моя проблема обусловлена не в состоянии установить шрифт через Hook Message Box (не доступен в Win CE) Я установил шрифт «Arial Unicode MS» в XMessageBox и текст будет отображаться, но значок неправильный.
Как получить MessageBox для использования другого шрифта ИЛИ Как получить XMessageBox, чтобы он не имел прозрачный фон ICON?
настольной версии XMessageBox можно найти here и у меня есть GitHub репо тестовой программы для Вас, чтобы посмотреть на код - в методе CUnicodeTestDlg :: OnInitDialog.
CStringW greekText(L"παρίσταταί");
TheButton.SetWindowText(greekText );
::MessageBox(*this,
greekText,
L"Is this greek?", MB_YESNO | MB_ICONHAND);
XMessageBox(*this,
greekText,
L"Is this greek?", MB_YESNO | MB_ICONHAND);
Обратите внимание: «Arial Unicode MS» должен быть установлен на устройстве или эмуляторе для XMessageBox, чтобы правильно отобразить греческий текст.
Я не вижу ошибки в коде GitHub, это, вероятно, что-то странное в Windows CE. Почему бы вам просто не удалить значок? Эти значки огромны, для 4 значков требуется около 1 МБ. Также дважды проверьте, что «Arial Uniocde MS» установлен. –