![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли такая функция [D6, Win95/98, WinXP]
Hogo © (2002-05-31 12:40:00)Есть ли функция которая отобразит твое окно поверх других, дяже поверх игр?
DarkSimpson (2002-08-08 21:24:00) [1]Можна еще писать в память видеокарты напрямую, наверное (Win9x)
Толик (2002-08-08 16:54:00) [2]Если игрушка использует монопольный режим DirectDraw, то НИКАК. Есть там такая константа DDSCL_EXCLUSIVE, так вот если она использовалась при инициализации DirectDraw, то отобразить свою форму поверх такой проги можно ТОЛЬКО свернув её и никак иначе...
Zev (2002-08-08 16:13:00) [3]// Сделать форму поверх остальных
SetWindowPos(Form1.Handle,HWND_TOPMOST,Form1.Left,Form1.Top,Form1.Width,Form1.Height,SWP_SHOWWINDOW);
// Сделать форму сзади всех
SetWindowPos(Form1.Handle,HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE OR SWP_NOSIZE);
Bars (2002-07-30 21:52:00) [4]form1.formstate:=fsontop;
easy (2002-06-01 18:16:00) [5]...Поверх directX - openGL игрушек отобразить окно невозможно, а если очень надо - сверни окно игрушки...
Wizard_Ex (2002-06-01 16:05:00) [6]Попробуй так
procedure TMainForm.BringToFrontAnyway;
var
OldTimeOut: DWORD;
hWnd: Integer;
begin
hWnd := GetForegroundWindow;
if hWnd = Application.Handle then Exit;
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(0), 0);
SetForegroundWindow(Application.Handle);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0);
end;