Пример работы с функцией 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); }
Данную функцию можно использовать для придания эффектов Вашему приложению.