Привет! Заметил такие вещи: 1. Если программа не делает вызов SetWindowsHookEx или снимает сделанный хук, то при обработке сообщения wm_KillFocus SetFocus(hWindow) отрабатывает нормально (не возвращает 0), но фокус мое окно не сохраняет. Если программа сделала вызов SetWindowsHookEx и не сняла его, то при обработке сообщения wm_KillFocus вызов SetFocus(hWindow) возвращает фокус окну программы, и окно всегда в фокусе. Вопросы такие: почему так происходит, и как сохранять фокус (ввода клавиатуры) на моем окне, не делая hook? Кстати, почему в справке Windows по SetWindowsHookEx написано, что функция обработки hook должна быть внутри dll, хотя, если она сидит внутри самой программы, то работает нормально? 2. Если в цикле обработки сообщений стоит GetMessage, то сообщения wm_MouseMove посылаются окну только когда курсор движется над ним, а если стоит PeekMessage, то эти сообщения посылаются окну всегда, даже если оно не активно?
На счет 1) LockSetForegroundWindow This function is provided so applications can prevent other applications from making a foreground change that can interrupt its interaction with the user.