Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как найти 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо