Win32: почему WS_CHILD не получает фокуса?
Выполнение прямого программирования Win32 API... прежде чем я опубликую кучу кода, я просто задам вопрос и посмотрю, есть ли у кого-нибудь быстрые идеи:
Я создаю свое главное окно WS_OVERLAPPED. Во время сообщения WM_CREATE я создаю окно WS_CHILD. Чтобы различать их, я сделал цвет фона главного окна цветом APPWORKSPACE, а дочернее окно просто белым. Все отображается правильно. Однако все сообщения WM_KEYUP и WM_KEYDOWN поступают вместе с дескриптором главного окна.
Эта проблема сразу же исчезнет, если я изменю WM_CHILD на WM_POPUP. Конечно, это не очень помогает, так как я специально хочу иметь дочернее окно. Но я думаю, что это, по крайней мере, показывает, что общая настройка обработки моих сообщений в порядке. Я подумал, что, возможно, это как-то связано с созданием ребенка во время родительского процесса WM_CREATE, но я не уверен, что именно. Я попытался щелкнуть в дочерней области, чтобы заставить фокус, но ключевые сообщения по-прежнему отправляются родителю.
Может ли кто-нибудь придумать причину, по которой WS_CHILD не будет получать сообщения WM_KEY*?