Это так работает, и ничего нельзя сделать. В той теме что дали выше я нашёл только одно решение через события, которое возможно подойдёт тебе (потому что я меняю раскладку в чужом окне, а не своём):
C++ (Qt)
SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, INPUTLANGCHANGE_SYSCHARSET, 0x04090409);
не помню, нужно ли делать AttachThreadInput при отсылке этого события в чужое окно.