AnimateWindow()函数如何使用

AnimateWindow()函数怎么使用?
我在程序中用了AnimateWindow()函数,但编译时却提示是未定义操作符,不知要包含什么头文件或者别的什么方法。请有经验的高手帮忙!谢谢!

------解决方案--------------------
加下面的定义到代码
#ifndef WINVER
#define WINVER 0x0500 /* version 5.0 */
#endif /* !WINVER */

------解决方案--------------------
如果你的SDK太老,是不支持的。
------解决方案--------------------
3,为对话框添加渐入渐出效果
BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags)

/******************************************************************

函数功能:该函数能在显示与隐藏窗口时产生两种特殊类型的动画效果:滚动动画和滑动动画。

参数含义:

hWnd: 指定产生动画的窗口的句柄。

dwTime:指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒。
dwFags:指定动画类型。这个参数可以是一个或多个下列标志的组合。标志描述:
AW_SLIDE:使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
AW_ACTIVATE:激活窗口。在使用了AW_HIDE标志后不能使用这个标志。
AW_BLEND:实现淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
AW_HIDE:隐藏窗口,缺省则显示窗口。
AW_CENTER:若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口;若未使用AW_HIDE标志,则使窗口向外扩展,即展开窗口。
AW_HOR_POSITIVE:自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
AW_VER_POSITIVE:自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
AW_VER_NEGATIVE:自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。


这个函数一般情况不能使用,由于编译器版本不够高

使用较简单的方法是动态载入DLL
先在要是用次函数的头文件添加
//假如你希望使用ANIWindow,加上,用来为窗口加入淡入淡出效果
typedef BOOL (WINAPI *lpfnAnimateWindow) (HWND hWnd, DWORD dwTime,DWORD dwFlags);

接下来在OnInitDialog或者在退出函数中添加

HMODULE hUser32 = GetModuleHandle(_T( "USER32.DLL "));
lpfnAnimateWindow pAni= (lpfnAnimateWindow)GetProcAddress (hUser32, "AnimateWindow ");
if (pAni)
{
pAni(GetSafeHwnd(),1000,0x10|0x10000); //200是毫秒数,动画时间
Invalidate(); //0x10000表示窗口淡出
//0x40000表示窗口淡入
//0x10表示居中
}


#if(WINVER > = 0x0500)
/*
* AnimateWindow() Commands
*/
#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


以下方法相对简单,已经试过,虽然失败也可能是自己的原因
BOOL AnimateWindow(
HWND hwnd,
DWORD dwTime,
DWORD dwFlags
);
  hWnd:指定产生动画窗口的句柄;
  dwTime:指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒;
  dwFags:指定动画类型。这个参数可以是一个或多个标志的组合。

dwFlags:

  AW_SLIDE:使用滑动类型。缺省为滚动类型。使用AW_CENTER标志时被忽略;

  AW_ACTIVATE:激活窗口。在使用了AW_HIDE标志后不能使用这个标志;

  AW_BLEND:实现淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志;

  AW_HIDE:隐藏窗口,缺省则显示窗口;

  AW_CENTER:若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口;若未使用AW_HIDE标志,则使窗口向外扩展,即展开窗口;

  AW_HOR_POSITIVE:自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略;

  AW_VER_POSITIVE:自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略;

  AW_VER_NEGATIVE:自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略;

  返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。

如果:
1、窗口使用了窗口边界;
2、窗口已经可见仍要显示窗口;
3、窗口已经隐藏仍要隐藏窗口。
函数将失败。

在STDAFX.H中加入
#undef WINVER
#define WINVER 0X500
否则可能会产生如下错误(由于Windows版本问题):
  'AnimateWindow ' : undeclared identifier
  'AW_HIDE ' : undeclared identifier
  'AW_CENTER ' : undeclared identifier