Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Анимация сворачивания окна

50K
02 июля 2009 года
alexwtf7
4 / / 02.07.2009
Вечер добрый. Столкнулся с проблемой.
Окно со стилем WS_EX_TOOLWINDOW не имеет кнопки на таскбаре, как и должно быть, но при его сворачивании через клик в трей например, в висте окно просто исчезает, а в XP его заголовок "улетает" в нижний левый угол экрана и там исчезает.
Есть возможность от этой анимации избавиться вообще, чтобы как в висте было?
Сразу скажу, пилю clist_modern плагин миранды. В квипе например всё замечательно - окно исчезает в любой операционной системе, от того и взялся ковырять, жутко раздражает.
3.7K
03 июля 2009 года
0nni
326 / / 24.06.2008
А что если перехватить WM_SYSCOMMAND, сделать проверку на SC_MINIMIZE и вместо сворачивания спрятать окно?
50K
03 июля 2009 года
alexwtf7
4 / / 02.07.2009
Сворачивание идёт через ShowWindow(hWnd, SW_HIDE), что в принципе должно просто скрывать окно.
Это думается баг XP, вот я и думаю, как его обойти.
3.7K
03 июля 2009 года
0nni
326 / / 24.06.2008
А все стили окна можете показать?
50K
03 июля 2009 года
alexwtf7
4 / / 02.07.2009
 
Код:
styleEx=WS_EX_TOOLWINDOW;
style=WS_CAPTION|WS_MINIMIZEBOX|WS_POPUPWINDOW|WS_CLIPCHILDREN|WS_THICKFRAME;
3.7K
03 июля 2009 года
0nni
326 / / 24.06.2008
Не знаю, у меня окно сворачивается так именно после SW_MINIMIZE, а после SW_HIDE просто исчезает, все таки проверьте что приходит в WM_SYSCOMMAND. Мб миранда что то мудрит?
50K
03 июля 2009 года
alexwtf7
4 / / 02.07.2009
Спасибо, разобрался.
Проблема была в другом.
 
Код:
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);
    }

В общем при включенной тени окна, в ShowWindow уходило не SW_HIDE, а SW_MINIMIZE. От того и анимация.
Надо-то было всего отключить тень в настройках :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог