Как перевести окно из полноэкранного в оконный режим?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Linky
Сообщения: 4
Зарегистрирован: 21 сен 2006, 23:15

Собственно сабж.
vunder
Сообщения: 74
Зарегистрирован: 10 май 2006, 12:19
Откуда: Санкт-Петербург
Контактная информация:

свойство формы WIndowsState
wsNormal - "обычное", т.е. то, как ты его сделал при радактировании (как раз оконный режим)
wsMaximized - полноэкранный
wsMinimized - окно свернуто в панель задач
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Ну вообще так
YourForm.WindowState := wsNormal;
или так
ShowWindow(YourWindow.Handle, SW_SHOWNORMAL);
It's a long way to the top if you wanna rock'n'roll
Linky
Сообщения: 4
Зарегистрирован: 21 сен 2006, 23:15

Извиняюсь что не уточнил сразу, имеется ввиду что окно чужого приложения.
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

Ишешь это окно допустим по названию, а потом делаешь с ним вссе что хочеь
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Linky
Сообщения: 4
Зарегистрирован: 21 сен 2006, 23:15

Поймать окно то я поймал, а вот перевести через ShowWindow всеми вариантами пробовал не помогает.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

HWND := FindWindow('TMainForm', 'MainForm');
ShowWindow(HWND, SW_SHOWNORMAL);

Такой код работает, но есть загвоздка. Если первоначальные параметры окна (длина, ширина) больше габаритов экрана, то
SW_NORMAL - практически тоже самое, что и SW_MAXIMIZE.
А если прога использует DirectX - то тут посложнее будет. Окно может быть вообще свернуто - прога будет использовать поверх-
ность отличную от виндовой и они никак взаимодействовать не будут.
Винда плохо справляется с переходом из полноэкранных игр, работающих через DirectX. Иногда рабочий стол может и не
появиться ;-)
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Попробуй просто сделать Resize - установи новую высоту и ширину и опять вызови ShowWindow. Это должно привести к апдейту окна. Может получиться - все от проги зависит. Прога возможно что-то делает на OnResize и не хочет, чтобы ее как-то меняли.
It's a long way to the top if you wanna rock'n'roll
Linky
Сообщения: 4
Зарегистрирован: 21 сен 2006, 23:15

Прога работает в режиме 640х480, возможно нужно поменять разрешение экрана при развернутой программе, как это сделать?
Ответить