|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 8, 2004 19:08:17 Правка …несовместимы? Создал ToolTip по примерам из MSDN, но отображается в нём только 1 буква. Поместил строку в ресурс, сказав системе, чтобы сама её оттуда вытаскивала - отображается весь текст нормально. Попробовал обновить текст - снова только 1 буква. Получил текст, который система вытащила из ресурсов - он оказался не Unicode. Как заставить систему создавать ToolTip, поддерживающий Unicode? Ведь у неё самой все эти "всплывающие сообщения" под Unicode. А указатель на текст в структуре TOOLINFO объявлен как LPTSTR, т.е. он может указывать как на простой текст, так и на Unicode. P.S. В ресурсах строки всегда хранятся под Unicodе. И при отключенной поддержке русского отображаются правильно, даже если не устанавливать язык (т.е. у меня строки хранятся под "LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US")… |
|
|
Дата: Янв 8, 2004 20:08:49 Правка Нет, я, конечно, понимаю, что все дружно за FASM уселись, но эта проблема для меня очень важна! (точнее, её устранение) Неужели никто не в курсе, что за проблема? Кто-то говорил, что если окно создать через CreateWindowExW, то и обмен сообщениями с ним будет происходить тоже на Unicode. Я так и сделал, но ToolTip упорно отказывается отображать строку на Unicode! как быть? |
|
|
Дата: Янв 8, 2004 20:12:13 IceStudent Прости, если задаю глупый вопрос, но ты учел, что для unicode WM_ совсем другие? |
|
|
Дата: Янв 8, 2004 20:18:39 Правка Toxic Чтоо? А подробнее, пожалуйста? Может это я глупый? (если так, то покаюсь и сяду за очередной сеанс медитации над PlatformSDK) А какие WM_*? Они что, тоже различаются? Типа: WM_GETTEXTA WM_GETTEXTW ??? |
|
|
Дата: Янв 8, 2004 20:24:24 Ну да. У большинства из них коды разные. Я когда-то части commctrl.h переводил на VB, так я заметил, что они отличаются. Но если ты пишешь на С, то у тебя этих проблем быть не должно(там автоматически нужное подставляется). А про ассемблер я не знаю - не пробовал. Я обычно использую без постфиксов A/W. |
|
|
Дата: Янв 8, 2004 20:33:04 · Поправил: IceStudent Правка У большинства из них коды разные КОДЫ? М-да, я правда об этом не знал… Но как обычно — копаешься в том, что не работает правильно. У меня до этого проблем не было, хотя активно использовал сообщения под Unicode. Я переводил только функции. там автоматически нужное подста Так и в MASM'e автоматом добавляется *A, если бы кто-то не поленился и написал не CreateWindowExA PROTO ... CreateWindowEx textequ <CreateWindowExA> CreateWindowExW PROTO ... а так CreateWindowExA PROTO ... CreateWindowExW PROTO ... if _UNICODE CreateWindowEx textequ <CreateWindowExW> else CreateWindowEx textequ <CreateWindowExA> то и не было бы столько лишней ручной работы! кстати, потому я в своём скрипте предусмотрел и conditional defines для препроцессора С/С++… |
|
|
Дата: Янв 11, 2004 16:20:36 Правка Toxic Спасибо, ты оказался прав! Но в windows.inc v1.26e сообщения или TTM_ADDTOOL или TTM_ADDTOOLW! А где с *А? Нехорошо получается. Стандарты от Microsoft не стоит игнорировать, раз уж пишем для Windows®… кто-то не поленился и написал и этим кто-то стал я. см. архив в теме Header converters… |