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