![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма поверх всех окон
Stalker01 © (2005-07-07 17:50:00)Как сделать форму, которая была бы поверх ВСЕХ остальных окон, делал sfStayOnTop, но при загрузки некоторых приложений, особено игр, форма все равно была под ними. Заранее спасибо.
Stalker01 (2005-07-08 14:30:00) [1]2begin...end
Идею понял, но у мня при этом на некоторых приложениях комп зависал, поэтому я сделал SetWindowPos на таймер, конечно некрасиво, зато работает.
Проблема в том, что моя форма выводиться поверх всех окон, но если имеется окно с частой перерисовкой (например игра), то моя форма просто зарисовываеться, графикой этого окна, хоть и находиться сверху. Пробовал делать по таймеру Repaint формы, но при этом она очень сильно мерцает, можно ли решить данную проблему?
begin...end (2005-07-07 21:12:00) [2]> Stalker01 © (07.07.05 18:54) [4]
> А можно подробнее?
Я не знаю, корректно так делать или нет, но попробовать можно.
Вначале делаемSetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW). А потом обрабатываем сообщение WM_WINDOWPOSCHANGING. Для этого в код формы нужно добавить обработчик:
type
TForm1 = class(TForm)
...
private
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
...
end;
procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin
inherited;
Message.WindowPos.hwndInsertAfter := HWND_TOPMOST
end.
DiamondShark (2005-07-07 19:03:00) [3]
> Алхимик © (07.07.05 17:52) [1]
Что будет если всесокрушающий снаряд попадёт в абсолютно непробиваемую стену?
Типа того.
TUser (2005-07-07 18:59:00) [4]> Не помогает
А мне помогает. Честное слово!
Stalker01 (2005-07-07 18:54:00) [5]
> TUser ©
Не помогает
> begin...end ©
А можно подробнее?
begin...end (2005-07-07 18:05:00) [6]WM_WINDOWPOSCHANGING отлавливать не поможет?
TUser (2005-07-07 18:01:00) [7]По таймеру делай Show.
Алхимик (2005-07-07 17:52:00) [8]А что будет если запустить ДВЕ программы , формы которых должны быть поверх ВСЕХ остальных окон? Что то типа Царь горы? :)