![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Восстановление окна после полно-экранного режима. [Delphi, Windows]
MrAngel © (2004-12-01 19:11:00)САБЖ.
Как корректно восстановить окно при переходе с полноэкранного режима?
Если этого не делать то прорисовка будет идти в окне, но окно будет без заголовка, меню и т.д.
Всё относится к Direct3D.
Sphinx (2004-12-02 18:15:00) [1]> MrAngel (02.12.04 17:22) [5]
Это не совсем то :)
это мой код переключения активного окна при восстановлении из свернутого состояния...ну а как его переработать думаю сам догадаешься? Проблем не было...восстанавливается вроде нормально.
MrAngel (2004-12-02 17:22:00) [2]Darthman © у меня DIrect3D - здесь не поверхности а буффера :-)) Всё рендерится, если сделать как я указал.
Sphinx (01.12.04 22:21) [3] - по моему это не то, но всёравно попробую. Спасибо.
Darthman (2004-12-01 23:00:00) [3]если директХ, то надо восстановить все поверхности чтобы рендерилось.
Sphinx (2004-12-01 22:21:00) [4]
// переключение активного окна
actHandle:=SetActiveWindow(mainHandle);
// если окно приложения активировано
if actHandle=mainHandle then
begin
// фокус ввода окну приложения
DefWindowProc(mainHandle, WM_SYSCOMMAND, SC_RESTORE, 0);
SetWindowPos(mainHandle, 0, 0, 0, Screen_Width, Screen_Height, SWP_SHOWWINDOW);
// указываю что активно
appActive := TRUE;
end;
MrAngel (2004-12-01 22:09:00) [5]
> borderstyle:=bsSingle;?
Появилось окно - показывается фпс в заголовке (так и должно быть), но само, что рендерится не показывает.
Покапавшись в исходниках D3DApp Нашёл вот такое:
SetWindowPos(Handle, HWND_NOTOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW);
Однако, что то мне подсказывает, что этого мало. Вышеуказанная строчка срабатывает, если у меня "стандартное Дельфийское окно". Но помоему это не сработает если сам буду делать окна.
Ещё какие нибудь идеи?
TButton (2004-12-01 20:32:00) [6]
borderstyle:=bsSingle;?