UNICODE и WINxxx (95,96,97... 2000 :-)
От: Sinatr Германия  
Дата: 13.06.03 14:22
Оценка:
Привет!

Пытаюсь сделать приложение, которое может выводить все свои сообщения и диалоги на любом языке (в том числе и на китайском). В NT нет никаких проблем — есть функция (моя), которая загружает внешний файл ресурсов (назовем его LNG) и по идентификатору строки + с учетом текущего выбранного языка возвращает UNICODE строку. Для вывода в WM_INITDIALOG загружается UNICODE-шрифт (30М где-то весит!), все контролы (статики, листбоксы и т.д.) получают соотвествующий WM_SETFONT и все это хозяйство инициализируется.

Теперь проблема — работает в NT/XP и не работает в 95\98 (подозреваю, что в 2000 и МЕ тоже).
Почему? Да потому, что почти все функции под UNICODE не работают! Абидна, панимаишь..

Ок, что же делать? Юзаю TextOutW() (ессно перед этим загрузив UNICODE фонт, и установив его в HDC перед этим) — все просто замечательно. Но делать все через owned-draw (я имею в виду АБСОЛЮТНО все — edit, list box, list view, static и т.д.. даже в заголовке окна рисовать самому придется..) меня не очень-то радует.

Нашел ссылку на DBCS (double byte character set) и OEM, попробовал использовать WideCharToMultiByte(), но куда-то делись китайские иероглифы, тоесть он какбы ни все символы переводит, часть из них просто отбрасывает и заменят на знаки вопроса (почему? не в смысле знаки вопроса почему, а почему НЕКОТОРЫЕ? и какие именно?).

А OEM (и кодовые страницы) — для китайского не предназначены, к тому же там че-то сказано про какие-то ограничения (и я не пойму, как тут выводить используя UNICODE-фонт?)..

Что делаеть, уважаемые господа эксперты? Сухари сушить?..
---
ПроГLамеры объединяйтесь..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.