John Doe wrote: диалог не имея фокуса ввода всё-таки обрабатывает очередь сообщений.
Упс, ложная посылка.
Всё может быть ровно наоборот: очередь обрабатывается в ProcessEditorInputW, и при необходимости какие-то нажатия направляются в наш немодальный диалог. Диалог очевидно должен обладать свойством show_on_top (
http://bugs.farmanager.com/view.php?id=3517).
Плюс, ещё один обработчик в ProcessEditorEventW будет следить за потерей фокуса редактором, и прятать диалоги при необходимости.
Правда возможности по отслеживанию активного окна пока что в АПИ ограничены.
Ещё одно ограничение, официально есть только ProcessEditorInputW, а значит в других областях обработать нажатия проблематично...
P.S.
Возможности использования не ограничиваются примером из первого поста.
На немодальных диалогах можно делать
фоновые индикаторы прогресса,
тултипы, нотификации с таймаутом, какие-нибудь
тулбары, списки автодополнения чего угодно.
Конечно всё это
как-то делалось и раньше, но хочется по-честному.