Перейти к содержимому

Пример работы с функцией AnimateWindow

Пример работы с функцией AnimateWindow. Случайным образом наткнулся сегодня на интересную API функцию AnimateWindow.

 
BOOL AnimateWindow(HWND hwnd, DWORD dwTime,DWORD dwFlags);  
HWND hwnd – дескриптор окна
DWORD dwTime – длительность анимации, в миллисекундах
DWORD dwFlags – тип анимации

Значения параметра dwFlags:

 
#define AW_HOR_POSITIVE  0x00000001
#define AW_HOR_NEGATIVE  0x00000002
#define AW_VER_POSITIVE   0x00000004
#define AW_VER_NEGATIVE   0x00000008
#define AW_CENTER            0x00000010
#define AW_HIDE                0x00010000
#define AW_ACTIVATE         0x00020000
#define AW_SLIDE               0x00040000
#define AW_BLEND              0x00080000

Для её использования необходимо создать приложение на основе диалога, на форму диалога добавьте кнопку и обработчик. В обработчике сообщения от кнопки добавьте следующий код:

typedef BOOL (WINAPI *ANIWIN)(HWND,DWORD,DWORD);
 
void CAnimateDlg::OnButton1()
{
        
        HMODULE  hMod = LoadLibrary("User32");
        if(hMod)
        {
                ANIWIN AniWin = NULL;
                AniWin = (ANIWIN)GetProcAddress(hMod,"AnimateWindow");
                if(AniWin)
                {
                        AniWin(this->m_hWnd,1000,AW_HIDE|AW_BLEND);
                        AniWin(this->m_hWnd,1000,AW_ACTIVATE|AW_BLEND);
                }
        }
 
        FreeLibrary(hMod);
}

Данную функцию можно использовать для придания эффектов Вашему приложению.

Метки: