Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как узнать что окно перекрыто другим


Автор: artem1987 6.11.2006, 18:10
WA_INACTIVE не помогает как быть?

Автор: Alexeis 6.11.2006, 23:20
Если GetTopWindow возвращает Handle не нашего окна, то значит оно перекрыто.
Еще можно посмотреть справку по GetNextWindow

Автор: anwe 6.11.2006, 23:35
alexeis1, а разве действительно будет окно перекрыто. А если искомое окно небольшого размера и другое, нераспахнутое, его не перекрывает?

Автор: Quadr0 7.11.2006, 00:16
...

Автор: anwe 7.11.2006, 00:19
Quadr0, вот и я про это же, но побоялся высказать, думал есть более "элегантный"   smile метод.

Автор: artem1987 7.11.2006, 12:43
alexeis1, я тоже об этом подумал только хотел с getforegroundwindow только вот когда выполнять эту проверку,
перехват WA_INACTIVE ничего не дает?
делаю так...
Код

Type TMain = class(TForm)
  ....
  protected Procedure LastFocus(var Mess : TMessage);
    message  WM_ACTIVATE;
End;

Procedure TMain.LastFocus(var Mess : TMessage);
Begin
  IF  Mess.wParam = WA_INACTIVE Then
    PanelCaption.Color:=clInactiveCaption
  Else
    PanelCaption.Color:=clActiveCaption;

  Inherited;
End;

Автор: Quadr0 7.11.2006, 13:11
...

Автор: Yanis 7.11.2006, 14:11
Окно может оставаться активным и быть перекрытым.

Автор: Quadr0 7.11.2006, 14:19
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)