Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нужен контрол для корректного ввода с клавиатуры юникод -символов  (Прочитано 7165 раз)
0 Пользователей и 1 Гость смотрят эту тему.
blind rain
Гость
« : 13-03-2006 11:36 » 

Здравствуйте, уважаемые.
Как реализовать корректный ввод юникоде-текста  в текстовый контрол формы VB6-приложения  для языка, у которого нет собственной однобайтовой кодировки? (для Win 98, 2000 реализовалось на cp1251 специальным установленным шрифтом, а для XP появились unicode символы)
Может быть подскажете какой-нибудь ActiveX контрол для этих целей. RichTextBox при вставке юникод символов из буфера нормально отображает, а при наборе с клавы - вопросы. При этом .Text свойство всегда вопросы возвращает, хотя в .textRTF кодируется (при вставке из буфера) как юникод.


Заранее благодарен.
Записан
blind rain
Гость
« Ответ #1 : 17-03-2006 07:21 » 

Для тех кто будет эту же конюшню чистить:
Время у меня было 2 дня, посему нельзя сказать что проблему решил - скорее муляж поставил:
На одном индусском сайте нашел такую-же проблему, пост примерно от того же времени (неверное мой ментальный двойник Улыбаюсь ) - умные гуру-индусы объяснили почему лажа такая происходит, пару слов насоветовали и послали на сайт http://www.cyberactivex.com/UnicodeTutorialVb.htm

В общем, прикрутил я unicode-aware TextEdit из Forms 2.0 Object Library, и написал тупой обработчик нажатий клавиш для блокировки кодов, которые Windows посылает в ansi-форму VB. Я мапировал в зависимости от KeyboardLayout эти коды в соответствующие Unicode-символы и записывал в свойство text.
Выглядит так - как будто работает Улыбаюсь.

А проблема в том, что судя по всему VB регистрирует класс формы через Ansi версию функции RegisterClass (RegisterClassA), а значит IsWindowUnicode возвращает False и система сама мапирует Unicode коды в соответствующие Ansi коды перед посылкой форме сообщения.


Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines