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);