Re[5]: Меню + popup фокус
От: Вумудщзук Беларусь  
Дата: 18.01.07 15:28
Оценка:
>Проверял через ::GetFocus() и ::GetActiveWindow() по таймеру...
>Насчет календаря — что-такое...
винда в таких случаях (тот же календарь, например) показывает окно без активации [ShowWindow(SW_SHOWNA)] и вертит свой цикл сообщений, в котором ловит во1х мышиные клики, не попадающие в окно, закрывая его при этом, и во2х клавиатурные сообщения — они пересылаются окну; ну и ещё по мелочам WM_KILLFOCUS, WM_SYSKEYDOWN, WM_ESCAPE, WM_QUIT (они все закрывают окно). Этим как раз и достигается, что фокус стоит на поле ввода, но клавиатурные сообщения идут в окно, которое ведёт себя так, будто фокус на нём. А вот уже если по окну кликнуть мышью, тогда оно действительно получает фокус. Ну, а если и этого надо избежать, то ловим WM_MOUSEACTIVATE и возвращаем MA_NOACTIVATE.
Homo sum et nihil humani a me alienum puto...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.