Как отключить окно «Показывать» анимацию? - PullRequest
0 голосов
/ 18 ноября 2018

Всякий раз, когда окно отображается в Windows, оно имеет быструю анимацию отображения, которая масштабирует / затухает в нем. Есть ли способ пропустить эту анимацию и заставить ее появиться немедленно? Мне удалось сделать это несколькими способами, но все они включают удаление WS_THICCFRAME, которое я хочу сохранить.

Есть ли событие, которое я мог бы отменить или переопределить? Какие функции я мог бы использовать?

1 Ответ

0 голосов
/ 18 ноября 2018

DwmSetWindowAttribute, с DWMWA_TRANSITIONS_FORCEDISABLED, отключит анимацию окна:

BOOL attrib = TRUE;
DwmSetWindowAttribute(m_hWnd, DWMWA_TRANSITIONS_FORCEDISABLED, &attrib, sizeof(attrib));

Примечание стороны,

Когда анимация отключена, и вы минимизируете /восстановить окно, переход будет выглядеть немного странно.

Лично я предпочитаю показывать некоторые окна без анимации, а затем восстанавливать поведение по умолчанию после показа окна (снова вызвать DwmSetWindowAttribute с attrib = FALSE;)

...