Переключение языка в Windows XP
От: Jukier  
Дата: 10.07.12 11:32
Оценка:
В последних версиях htmlayout.dll в диалоге htmlayout::dialog не переключается язык ввода (например, alt + shift). Проблема есть в Windows XP (но не на всех машинах). В Windows 7 переключается.
Проблемы нет при использовании htmlayout.dll версии 3.3.1.43.
Re: Переключение языка в Windows XP
От: c-smile Канада http://terrainformatica.com
Дата: 11.07.12 16:22
Оценка:
Здравствуйте, Jukier, Вы писали:

J>Проблема есть в Windows XP (но не на всех машинах). В Windows 7 переключается.


Честно говоря звучит подозрительно. Код один и тот же работает на всех платформах.
Windows XP — чистая инсталляция?
Re[2]: Переключение языка в Windows XP
От: Jukier  
Дата: 12.07.12 10:37
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Jukier, Вы писали:


J>>Проблема есть в Windows XP (но не на всех машинах). В Windows 7 переключается.


CS>Честно говоря звучит подозрительно. Код один и тот же работает на всех платформах.

CS>Windows XP — чистая инсталляция?

Чистая, не сборка, лицензия.
Комбинация Ctrl+Shift и Alt+Shift

Язык переключается на 1 из 5 машин с Windows XP (с проблемой есть Windows XP Service Pack 2 и 3). Никакого специализированного ПО, связанного с переключением языка нет (типа Punto Switcher).
Re[3]: Переключение языка в Windows XP
От: mYziK  
Дата: 01.07.16 14:49
Оценка:
J>>>Проблема есть в Windows XP (но не на всех машинах). В Windows 7 переключается.

Как-то сталкивался с чем-то похожим. Но при этом использовал класс диалога, а не окна:
class Impl : public ATL::CDialogImpl<Impl, WTL::CHTMLayoutCtrl>
           , public WTL::CHTMLayoutHost<Impl>

В windows xp диалог не обрабатывает переключение языка (не вызывает DefWindowProc() для сообщения WM_LANGCHANGEREQUEST), полагая что это сделает child control. Таким образом если UI использует htmlayout/sciter — то и вызвать DefWindowProc() некому.

Попробуйте в карту сообщений добавить что-то типа:
if (uMsg == WM_LANGCHANGEREQUEST)
    return ::DefWindowProc(hWnd, uMsg, wParam, lParam);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.