Это было НАВСЕГДА с тех пор, как мне пришлось это сделать, но ...
Если бы это был диалог, я бы посоветовал вам отправить WM_NEXTDLGCTL через PostMessage ().Обработчик сообщений элемента диалога по умолчанию позаботится обо всем остальном, чтобы вы установили фокус клавиатуры и активацию выбора.Тем не менее, это другой случай, если я прочитал это правильно.Вы создаете родительские и дочерние окна необработанными на лету.Если это так, установите SetFocus () в родительское окно и обработайте WM_SETFOCUS в родительском окне, подняв его вверх, а затем установив фокус на дочернем окне.WM_SETFOCUS и WM_KILLFOCUS были разработаны для того, чтобы позволить вам переключать «активированное» состояние ваших элементов управления, и большинство обрабатывает его для вас (если ваше окно не является владельцем элемента управления рисованием или каким-либо другим).Но в необработанном окне, когда вашему базовому родительскому окну отправляется фокус, вам необходимо надлежащим образом убедиться, что у него есть соответствующий дочерний элемент, если вы его размещаете (думайте об этом как об управлении собственным «диалогом»).Опять же, обычно это делается с помощью стандартной диалоговой процедуры для вас, если бы это был диалог, но, будучи необработанными окнами, вы как бы застряли, управляя всем этим самостоятельно.
Хотя я не могу себе представить, как, я надеюсьэто несколько помогло.