styleEx=WS_EX_TOOLWINDOW;
style=WS_CAPTION|WS_MINIMIZEBOX|WS_POPUPWINDOW|WS_CLIPCHILDREN|WS_THICKFRAME;
Анимация сворачивания окна
Окно со стилем WS_EX_TOOLWINDOW не имеет кнопки на таскбаре, как и должно быть, но при его сворачивании через клик в трей например, в висте окно просто исчезает, а в XP его заголовок "улетает" в нижний левый угол экрана и там исчезает.
Есть возможность от этой анимации избавиться вообще, чтобы как в висте было?
Сразу скажу, пилю clist_modern плагин миранды. В квипе например всё замечательно - окно исчезает в любой операционной системе, от того и взялся ковырять, жутко раздражает.
А что если перехватить WM_SYSCOMMAND, сделать проверку на SC_MINIMIZE и вместо сворачивания спрятать окно?
Это думается баг XP, вот я и думаю, как его обойти.
А все стили окна можете показать?
Код:
Не знаю, у меня окно сворачивается так именно после SW_MINIMIZE, а после SW_HIDE просто исчезает, все таки проверьте что приходит в WM_SYSCOMMAND. Мб миранда что то мудрит?
Проблема была в другом.
Код:
if (hWnd==pcli->hwndContactList
&& !g_mutex_bChangingMode
&& nCmd==SW_HIDE
&& !g_CluiData.fLayered
&& IsWinVerXPPlus()
&& ModernGetSettingByte(NULL,"CList","WindowShadow",SETTING_WINDOWSHADOW_DEFAULT))
{
ShowWindow(hWnd,SW_MINIMIZE); //removing of shadow
return ShowWindow(hWnd,nCmd);
}
&& !g_mutex_bChangingMode
&& nCmd==SW_HIDE
&& !g_CluiData.fLayered
&& IsWinVerXPPlus()
&& ModernGetSettingByte(NULL,"CList","WindowShadow",SETTING_WINDOWSHADOW_DEFAULT))
{
ShowWindow(hWnd,SW_MINIMIZE); //removing of shadow
return ShowWindow(hWnd,nCmd);
}
В общем при включенной тени окна, в ShowWindow уходило не SW_HIDE, а SW_MINIMIZE. От того и анимация.
Надо-то было всего отключить тень в настройках :D