Столкнулся тут с необычной проблемой, поискал по форумам, ничего подобного не нашел
Имеется WinXP SP2, с американской локацией, но добавленным русским в качестве дополнительного языка ввода. Создаем любое MFCшное диалоговое приложение, вешаем туда editbox. (VS2005, Character Set — Multi-Byte )
Суть проблемы: любой текст, введенный в этот edit на русском, получить невозможно! GetWindowText возвращает набор вопросов на тех местах, где находятся русские символы. Пробовал явно вызывать GetWindowTextW, результат тот же. Возникает только в XP, на подобно настроенной Win2000 все ок.
Причем, если вставить в этот edit русский текст из буфера, а затем вызвать GetWindowText, то все нормально, вернутся русские символы
Может кто знает, как это обойти или есть хотя бы предположения, что тут не так?
Здравствуйте, uinet, Вы писали:
U>Суть проблемы: любой текст, введенный в этот edit на русском, получить невозможно! GetWindowText возвращает набор вопросов на тех местах, где находятся русские символы. Пробовал явно вызывать GetWindowTextW, результат тот же. Возникает только в XP, на подобно настроенной Win2000 все ок.
U>Причем, если вставить в этот edit русский текст из буфера, а затем вызвать GetWindowText, то все нормально, вернутся русские символы
U>Может кто знает, как это обойти или есть хотя бы предположения, что тут не так?
Почему работает при вставке из clipboard объяснить можно тем, что в clipboard могут находитяс множетво форматов текста, в том числе
CF_UNICODE, CF_TEXT + CF_LOCALE, т.е. у edit'а есть шанс

правильно преобразовать (при необходимости) текст.
Возьмите какой-нить clipboard viewer и посмотрите содержимое clipboard'а при копировании текста из вашего edit'а на Xp и Win2000, и сравните,
также можете посмотреть, что возвращает
InternalGetWindowText