|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.12.2009, 17:10 | #1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Как узнать, перекрывается ли моё окно другим окном?
Всем привет. Сабж такой: котроче окно прячется/отображается по улику в трее. Использовать только IsVindowVisible для этой цели не удобно, т.к. окно может не быть скрытым, в понимании виндоус, но зато может перекрываться другими окнами и не отображаться. В такой ситуации надо дважды щёлкнуть в трее, что-бы отобразить окно. Один раз, что-бы его скрыть, а второй раз, что-бы отобразить.
Решил использовать WindowsEnum, но только пока я в лузерах. Не знаю что делать с хенделами, которые мне передаёт виндоус. Как мне поступить? |
11.12.2009, 17:59 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...как насчет сравнить хэндл вашего окна, которым управляете из трея с getforegroundwindow ? если не совпадает и не скрыто, то выводим на передний план setforegroundwindow или setwindowpos c cоответствующим флагом, если не совпадает и скрыто, то showwindow, ну и так далее все варианты...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
11.12.2009, 18:10 | #3 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
Создавай определенный класс окна и смотри что за класс. Или смотри какому процессу принадлежит окно. А если сам пишешь программу, тогда вообще непонятно зачем это все, выводи просто поверх всех окон.
|
11.12.2009, 19:15 | #4 | ||
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Цитата:
Цитата:
В общем не всё так просто как хотелось бы. Последний раз редактировалось Altera; 11.12.2009 в 19:17. |
||
11.12.2009, 19:21 | #5 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
От сердца отрываю Использую Unicode версию дельфи
Код:
Последний раз редактировалось BOBAH13; 11.12.2009 в 19:26. |
11.12.2009, 20:48 | #6 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Что за ForceForegroundWindow? Нету не в справке не в MSDN
|
11.12.2009, 20:54 | #7 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ну емае... поставьте SetForegroundWindow
|
11.12.2009, 23:09 | #8 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
|
12.12.2009, 11:05 | #9 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
2BOBAH13. А зачем нужно что-бы
GetWindowLong(hwnd, GWL_HWNDPARENT) = 0? Я её закоментировал и стало лучше. Код:
з.ы. Progman что за класс? |
12.12.2009, 12:22 | #10 | ||
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Узнать открыто ли окно? | Vol666 | Общие вопросы Delphi | 1 | 07.10.2009 18:28 |
как узнать Pid процесса которому принадлежит окно | Пепел Феникса | Win Api | 3 | 13.04.2009 13:37 |
Как на JavaScript узнать, что пользователь закрыл окно? | Laziz | JavaScript, Ajax | 1 | 22.02.2009 21:16 |
проверьте моё решение | sverhuVniz | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 25.10.2008 09:26 |
как поставить иконку в моё приложение? | steck | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 16.05.2007 18:12 |