Вниз
Скачать: CL | DM;

Форма поверх всех окон   Найти похожие ветки 

← →
Stalker01 ©   (2005-07-07 17:50) [0]

Как сделать форму, которая была бы поверх ВСЕХ остальных окон, делал sfStayOnTop, но при загрузки некоторых приложений, особено игр, форма все равно была под ними. Заранее спасибо.


← →
Алхимик ©   (2005-07-07 17:52) [1]

А что будет если запустить ДВЕ программы , формы которых должны быть поверх ВСЕХ остальных окон? Что то типа Царь горы? :)


← →
TUser ©   (2005-07-07 18:01) [2]

По таймеру делай Show.


← →
begin...end ©   (2005-07-07 18:05) [3]

WM_WINDOWPOSCHANGING отлавливать не поможет?


← →
Stalker01 ©   (2005-07-07 18:54) [4]


> TUser ©

Не помогает

> begin...end ©  

А можно подробнее?


← →
TUser ©   (2005-07-07 18:59) [5]

> Не помогает

А мне помогает. Честное слово!


← →
DiamondShark ©   (2005-07-07 19:03) [6]


> Алхимик ©   (07.07.05 17:52) [1]

Что будет если всесокрушающий снаряд попадёт в абсолютно непробиваемую стену?
Типа того.


← →
begin...end ©   (2005-07-07 21:12) [7]

> 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.


← →
Stalker01 ©   (2005-07-08 14:30) [8]

2begin...end
Идею понял, но у мня при этом на некоторых приложениях комп зависал, поэтому я сделал SetWindowPos на таймер, конечно некрасиво, зато работает.
Проблема в том, что моя форма выводиться поверх всех окон, но если имеется окно с частой перерисовкой (например игра), то моя форма просто зарисовываеться, графикой этого окна, хоть и находиться сверху. Пробовал делать по таймеру Repaint формы, но при этом она очень сильно мерцает, можно ли решить данную проблему?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1120953896
Mic_2000
2005-07-10 04:04
2005.07.25
Проверка выделения текста в TEdit


1-1120656356
stud
2005-07-06 17:25
2005.07.25
завершение работы приложения


14-1120485130
raidan
2005-07-04 17:52
2005.07.25
Амнистии


14-1120140519
_dimka
2005-06-30 18:08
2005.07.25
Вопрос по транзакциям в IB


14-1120201663
Андрей Жук
2005-07-01 11:07
2005.07.25
Что надо для создания проектов под .Net?




   Наверх