Минимизированное окно, восстановление
От: CEMb  
Дата: 24.08.11 17:40
Оценка:
Как определить для минимизированного окна, куда оно восстановится? В normal или maximized?
GetWindowPlacement в любом случае содержить только normal rect
Re: Минимизированное окно, восстановление
От: Aniskin  
Дата: 24.08.11 19:31
Оценка: 6 (1)
Здравствуйте, CEMb, Вы писали:

CEM>Как определить для минимизированного окна, куда оно восстановится? В normal или maximized?

CEM>GetWindowPlacement в любом случае содержить только normal rect

А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?
Re[2]: Минимизированное окно, восстановление
От: CEMb  
Дата: 25.08.11 02:14
Оценка:
Здравствуйте, Aniskin, Вы писали:

CEM>>Как определить для минимизированного окна, куда оно восстановится? В normal или maximized?

CEM>>GetWindowPlacement в любом случае содержить только normal rect

A>А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?


Ага, он самый, работает.
Re[3]: Минимизированное окно, восстановление
От: kero Россия  
Дата: 25.08.11 02:51
Оценка:
Здравствуйте, CEMb, Вы писали:

A>>А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?


CEM>Ага, он самый, работает.


токо не всегда
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[4]: Минимизированное окно, восстановление
От: Aniskin  
Дата: 25.08.11 03:12
Оценка: +1
Здравствуйте, kero, Вы писали:

K>Здравствуйте, CEMb, Вы писали:


A>>>А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?


CEM>>Ага, он самый, работает.


K>токо не всегда


А можно поподробнее?
Re[5]: Минимизированное окно, восстановление
От: kero Россия  
Дата: 25.08.11 06:07
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>>>>А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?


CEM>>>Ага, он самый, работает.


K>>токо не всегда


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


Вроде нарывался, проверю и доложу, сейчас нет возможности, попозже.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[6]: Минимизированное окно, восстановление
От: CEMb  
Дата: 25.08.11 17:02
Оценка: :)
Здравствуйте, kero, Вы писали:

A>>>>>А если проверить WINDOWPLACEMENT.flags на наличие WPF_RESTORETOMAXIMIZED?


CEM>>>>Ага, он самый, работает.


K>>>токо не всегда


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


K>Вроде нарывался, проверю и доложу, сейчас нет возможности, попозже.


Подстрекатель и провокатор
Re: Продолжим тему
От: CEMb  
Дата: 02.09.11 17:20
Оценка:
Требуется сделать такую штуку.
В системах, где минимизация-восстановление отражено анимацией — можно ли восстановить/минимизировать окно без анимации? Где она вообще включается-выключается?
Конечная цель — снять картинку с окна. Картинка снимается, но вот со свёрнутого окна — видно только свёрнутое окно.
Re[2]: Продолжим тему
От: SaZ  
Дата: 05.09.11 13:32
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Требуется сделать такую штуку.

CEM>В системах, где минимизация-восстановление отражено анимацией — можно ли восстановить/минимизировать окно без анимации? Где она вообще включается-выключается?

1) Выключается в SystemParametersInfo, если я не ошибаюсь, или где-то в похожих функциях. Не уверен.
2) Можно попробовать так: ShowWindow: SW_HIDE -> SW_MINIMIZE -> SW_SHOW
Re[3]: Продолжим тему
От: CEMb  
Дата: 05.09.11 17:16
Оценка:
Здравствуйте, SaZ, Вы писали:

CEM>>Требуется сделать такую штуку.

CEM>>В системах, где минимизация-восстановление отражено анимацией — можно ли восстановить/минимизировать окно без анимации? Где она вообще включается-выключается?

SaZ>1) Выключается в SystemParametersInfo, если я не ошибаюсь, или где-то в похожих функциях. Не уверен.


Ага, так и есть, параметр SPI_GETANIMATION, структура ANIMATIONINFO

SaZ>2) Можно попробовать так: ShowWindow: SW_HIDE -> SW_MINIMIZE -> SW_SHOW


SW_HIDE — снесёт окно из таскбара

Зато неожиданно работает — SetWindowLongPtr(hWnd, GWL_STYLE, own_style &~WS_VISIBLE);
Неожиданно, именно — окно продолжает висеть в таскбаре при этом оно невидимое.

При это интересный эффект наблюдается, если:
~WS_VISIBLE, |WS_MINIMIZE, |WS_VISIBLE — окно своего нормального размера (restore rect) и при этом — минимизированное!
Кому доводилось наблюдать минимизированные окна в полэкрана?

Правда, в обратную сторону у меня не получилось, WS_MINIMIZE руками не сбрасывается... но таскбар на клик, к примеру, реагирует, или SW_RESTORE тоже обычным образом отрабатывает
Re[4]: Продолжим тему
От: kero Россия  
Дата: 05.09.11 21:43
Оценка: 4 (1)
Здравствуйте, CEMb, Вы писали:

CEM>Зато неожиданно работает — SetWindowLongPtr(hWnd, GWL_STYLE, own_style &~WS_VISIBLE);

CEM>Неожиданно, именно — окно продолжает висеть в таскбаре при этом оно невидимое.
CEM>При это интересный эффект наблюдается, если:
CEM>~WS_VISIBLE, |WS_MINIMIZE, |WS_VISIBLE — окно своего нормального размера (restore rect) и при этом — минимизированное!
CEM>Кому доводилось наблюдать минимизированные окна в полэкрана?

Что, правда не догадываетесь — кому?
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[5]: Продолжим тему
От: CEMb  
Дата: 06.09.11 16:32
Оценка:
Здравствуйте, kero, Вы писали:

CEM>>Зато неожиданно работает — SetWindowLongPtr(hWnd, GWL_STYLE, own_style &~WS_VISIBLE);

CEM>>Неожиданно, именно — окно продолжает висеть в таскбаре при этом оно невидимое.
CEM>>При это интересный эффект наблюдается, если:
CEM>>~WS_VISIBLE, |WS_MINIMIZE, |WS_VISIBLE — окно своего нормального размера (restore rect) и при этом — минимизированное!
CEM>>Кому доводилось наблюдать минимизированные окна в полэкрана?

K>Что, правда не догадываетесь — кому?


Ну и где там стиль устанавливается?
Почему нельзя сделать одну, большую, нормальную, удобную программу?
А вот за SetWindowPlacement — спасибо это то, что нужно!
Re[5]: Продолжим тему
От: CEMb  
Дата: 06.09.11 16:33
Оценка:
Здравствуйте, kero, Вы писали:

CEM>>Зато неожиданно работает — SetWindowLongPtr(hWnd, GWL_STYLE, own_style &~WS_VISIBLE);

CEM>>Неожиданно, именно — окно продолжает висеть в таскбаре при этом оно невидимое.
CEM>>При это интересный эффект наблюдается, если:
CEM>>~WS_VISIBLE, |WS_MINIMIZE, |WS_VISIBLE — окно своего нормального размера (restore rect) и при этом — минимизированное!
CEM>>Кому доводилось наблюдать минимизированные окна в полэкрана?

K>Что, правда не догадываетесь — кому?


Кстати, большое минимизированное окно я так и не увидел
Походу, оно только стилями колдуется.
Re[6]: Продолжим тему
От: kero Россия  
Дата: 06.09.11 17:56
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>>>Зато неожиданно работает — SetWindowLongPtr(hWnd, GWL_STYLE, own_style &~WS_VISIBLE);

CEM>>>Неожиданно, именно — окно продолжает висеть в таскбаре при этом оно невидимое.
CEM>>>При это интересный эффект наблюдается, если:
CEM>>>~WS_VISIBLE, |WS_MINIMIZE, |WS_VISIBLE — окно своего нормального размера (restore rect) и при этом — минимизированное!
CEM>>>Кому доводилось наблюдать минимизированные окна в полэкрана?

K>>Что, правда не догадываетесь — кому?


CEM>Ну и где там стиль устанавливается?


Т.е. — как это где ?!

Для конкретности примем, что мы на Win7 Aero.
1) Запускаем wp,
2) запускаем целевое окно (скажем — папку),
3) фиксируем это окно в wp:
наводим курсор на заголовок целевого окна и шлепаем LSift + RShift,
после чего в окно wp вываливается кое-какая инфа о целевом окне,
4) для большего кайфа — еще и максимизируем целевое окно
(хоть из меню wp, хоть кнопкой заголовка целевого окна),
5) и, наконец, в меню wp "More..." — "ws_Minimize".

Смотрим на целевое окно:
оно — (зрительно) максимизировано во весь экран,
и вместе с тем — минимизировано (взгляните на кнопки его заголовка),
такой вот изловили момент его жизни.

На самом-то деле почти все целевое окно превратилось в область HTCAPTION
(в чем легко убедиться при помощи HTSpy, его фотка).
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[7]: Продолжим тему
От: CEMb  
Дата: 07.09.11 03:27
Оценка: :)
Здравствуйте, kero, Вы писали:

K>5) и, наконец, в меню wp "More..." — "ws_Minimize".


А... блин, самое главное в самое дальнее меню склал...
Re[8]: Продолжим тему
От: kero Россия  
Дата: 07.09.11 05:57
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>А... блин, самое главное в самое дальнее меню склал...


Только не прозевайте офигенность различий при разных цветовых схемах, вот картинки отсюда:

XP при "классическом" и "XP стиле":


Windows 7 Classic:


Windows 7 Aero Basic:


Windows 7 Aero Standard:


(Вариант для нормальной отрисовки "свернутого" окна при "классическом" стиле:
наличие WS_EX_LAYERED или WS_EX_COMPOSITED).
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[8]: Продолжим тему
От: kero Россия  
Дата: 07.09.11 06:29
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>А... блин, самое главное в самое дальнее меню склал...


И почему — "самое дальнее"?
Самое дальнее (в текущей версии) — это "Cursor+LShift+RShift",
пример его задействования см. в соседнем топике
Автор: kero
Дата: 30.08.11
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[9]: Продолжим тему
От: CEMb  
Дата: 07.09.11 17:20
Оценка:
Здравствуйте, kero, Вы писали:

CEM>>А... блин, самое главное в самое дальнее меню склал...


K>И почему — "самое дальнее"?

K>Самое дальнее (в текущей версии) — это "Cursor+LShift+RShift",

Оно логически дальнее "More..."

K>пример его задействования см. в соседнем топике
Автор: kero
Дата: 30.08.11


Картинку смотрел в Win-7, ага, такая же у меня была.
Re[10]: Продолжим тему
От: kero Россия  
Дата: 07.09.11 17:45
Оценка:
Здравствуйте, CEMb, Вы писали:

K>>И почему — "самое дальнее"?

K>>Самое дальнее (в текущей версии) — это "Cursor+LShift+RShift",

CEM>Оно логически дальнее "More..."


K>>пример его задействования см. в соседнем топике
Автор: kero
Дата: 30.08.11


CEM>Картинку смотрел в Win-7, ага, такая же у меня была.


не понял — картинку BSOD-а ?
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[11]: Продолжим тему
От: CEMb  
Дата: 08.09.11 17:40
Оценка:
Здравствуйте, kero, Вы писали:

K>>>И почему — "самое дальнее"?

K>>>Самое дальнее (в текущей версии) — это "Cursor+LShift+RShift",

CEM>>Оно логически дальнее "More..."


K>>>пример его задействования см. в соседнем топике
Автор: kero
Дата: 30.08.11


CEM>>Картинку смотрел в Win-7, ага, такая же у меня была.


K>не понял — картинку BSOD-а ?


Не, минимизированного окна во весь экран.

... сижу, прикручиваю SetWindowPlacement, пока вроде ничё... в одну сторону работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.