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

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

узнать, перекрыто ли окно частично другими окнами или свернуто [D7, Win95/98, WinXP]


Tack ©   (2005-08-17 14:42:00) 

в программе идет дамп сообщений о некоторых асинхронных событиях. Следует мигать значком в трее при новом сообщении, если окно свернуто или частично/полностью перекрыто другими окнами.

Как узнать, что окно с данным HWND перекрыто другими окнами на экране или минимизировано/спрятано? Если окно не перекрыто, а просто неактивно, то ничего делать не надо.

Хотелось бы написать одну булевскую функцию типа WantMessage, которая принимает только HWND. Подскажите, может есть готовые в API или VCL


Tack   (2005-08-17 15:00:00) [1]

всем спасибо, вопрос закрыт.


Leonid Troyanovsky   (2005-08-17 14:57:00) [2]


> Tack   (17.08.05 14:42)  

> Как узнать, что окно с данным HWND перекрыто другими окнами
> на экране или минимизировано/спрятано? Если окно не перекрыто,
> а просто неактивно, то ничего делать не надо.


Find windows that may cover another window.

Var
 hW: HWnd;
 r: TRect;
begin
 hw := Handle;
 While IsWindow(hw) Do Begin
   hw := GetWindow( hw, GW_HWNDPREV );
   If IsWindowVisible(hw) and not IsIconic( hw ) Then Begin
     ... use GetWindowRect( hw, r ) to get candidate windows
     rect and check if it intersects the forms BoundsRects via
     IntersectRect
   End;
 End;
end;

Peter Below (TeamB)  100113.1...@compuserve.com)

--
Regards, LVT.


Tack   (2005-08-17 14:54:00) [3]

спасибо. А как насчет "частично перекрыто"?


DVM   (2005-08-17 14:44:00) [4]


> или минимизировано/спрятано

IsIconic()


Наверх

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