![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как найти handle окна, потерявшего фокус
Wild Sam © (2003-09-26 15:29:00)
Здравствуйте! Вопрос таков: как получить handle окна, которое имело фокус до того, как мое окно получило фокус? Спасибо!
Wild Sam (2003-09-26 17:53:00) [1]
Блин, а у меня нет...Ну, не буду грешить на глюки компилера, поищу глупую ошибку у себя...
clickmaker (2003-09-26 17:41:00) [2]
Проверил, GetForegorundWindow в ответ на WM_MOUSEMOVE над иконкой дает активное окно
Wild Sam (2003-09-26 17:02:00) [3]
Я вот думаю на перемещение мыши над иконкой поставить запоминание текущего окна. Только что-то пока возвращается хэндл моего приложения... Ошибка где-то.
Wild Sam (2003-09-26 16:45:00) [4]
"По клику смотреть GetForegroundWindow не помогает ?" - возвращает хэндл таскбара...
Игорь Шевченко (2003-09-26 16:28:00) [5]
По клику смотреть GetForegroundWindow не помогает ?
Wild Sam (2003-09-26 16:27:00) [6]
2 clickmaker. Не срабатывает...
Кроме того, есть подозрение, что в моем случае (см. описание задачи) предыдущим окном будет таск бар...
Wild Sam (2003-09-26 16:23:00) [7]
С удовольствием. Надо сделать окно, которое не отнимает фокус. Если еще подробнее, то в трее висит иконка моей программы. При клике на нее возникает Popup-menu (это не обязательное условие, можно показывать, например и специальную форму), при этом фокус перемещается к моей программе. При исчезновении popup"а фокус должен вернуться туда, где он был. Кроме того, handle окна, потерявшего фокус, нужен и для своих целей...
Спасибо за внимание.
clickmaker (2003-09-26 16:20:00) [8]
А почему WM_SETFOCUS не подходит ?
WM_SETFOCUS
The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus.
WM_SETFOCUS
hwndLoseFocus = (HWND) wParam; // handle to window losing focus
Игорь Шевченко (2003-09-26 16:16:00) [9]
О задаче подробнее, плз
Wild Sam (2003-09-26 16:11:00) [10]
Проблема вот в чем. WM_SETFOCUS мне не подходит... WM_ACTIVATE - подходит, но оно не дает хэндла предыдущего окна (в хелпе так и написано:"...hwndPrevious is the handle of the window being deactivated. This handle can be NULL. "
?????????????
Игорь Шевченко (2003-09-26 15:39:00) [11]
или WM_ACTIVATE
VMcL (2003-09-26 15:37:00) [12]
см. сообщение WM_SETFOCUS