实现多文档窗口打开时的效果

实现多文档窗口打开时的效果
                                                                                              作者:天涯 2007-05-19 12:33:43
标签:
 
 

实现多文档窗口打开时的效果,例如,ppt中的从左向右开屏,或卷帘效果。没做过的第一下看去肯定是无从下手。其实windows api就

有这样的函数。function   AnimateWindow(hWnd:   HWND;   dwTime:   DWORD;   dwFlags:   DWORD):   BOOL;   stdcall;  

   
MSDN中详细说明:  
   
function   AnimateWindow(hWnd:   HWND;   dwTime:   DWORD;   dwFlags:   DWORD):   BOOL;   stdcall;  
   
  参数:hWnd   :   想要显示动画窗体的句柄  
  dwTime   :   动画时间数,单位毫秒  
  dwFlags   :   显示方式,取值如下定义  
  1.AW_HOR_POSITIVE   =   $00000001;   //   从左向右开屏  
  2.AW_HOR_NEGATIVE   =   $00000002;   //   从右向左开屏  
  3.AW_VER_POSITIVE   =   $00000004;   //   从上向下开屏  
  4.AW_VER_NEGATIVE   =   $00000008;   //   从下向上开屏  
  5,AW_CENTER   =   $00000010;   //   从中心向四周扩展,在关闭动画中则为从四周向中心收缩  
  6.AW_HIDE   =   $00010000;   //   关闭时候与前面的定义组合使用,如AW_HIDE   or   AW_CENTER  
  7.AW_ACTIVATE   =   $00020000;   //   与1-5组合,开屏使用  
  8.AW_SLIDE   =   $00040000;   //   与1-5   +   6/7   组合,产生滑行效果  
  9.AW_BLEND   =   $00080000;   //   Win2000下使用,淡入淡出效果 

使用这个函数后最容易出现的是,头文件也包含了,就是编译不过去。在编译时系统会报错如下:

'AnimateWindow' : undeclared identifier
'AW_HIDE' : undeclared identifier
'AW_CENTER' : undeclared identifier

通过错误提示可以看出是编译系统认为AnimateWindow函数和AW_HIDE、AW_CENTER两个参数没有定义。因该函数是定义在Winuser.h头

文件中的,于时,笔者显示地在程序中定义了对该头文件的包含,编译时却仍然出现相同的错误。为什么在VC中编译不能通过呢?查看MSDN发现,在MSDN中明确提到WindowsNT5.0和Windows98以上版本均支持该函数。仔细观察会发现,问题出在定义

AnimateWindow函数的头文件Winuser.h中,在VC安装目录下进入include子目录,用EDIT打开Winuser.h文件,按F3键查找

AnimateWindow,可以发现有两处定义,一处是定义该函数中使用到的参数;另一处是该函数原型的定义。在这两处定义中均出现了

对Windows版本的条件判断,#if (WINVER >= 0X500)……,原来问题出在这里,我们目前所使用的各种Windows主版本号均为5点零以

下,所以在VC中编译上述程序时,编译系统自然将AnimateWindow函数排除在外。因此为了在我们的程序中使用该函数,就得对其头

文件进行一些小小的修改,即将#if (WINVER >= 0X500)改为#if (WINVER >= 0X400),请注意两处出现该函数定义的部分都要进行修

改。 #undef WINVER
#define WINVER 0x5000

修改好头文件后,编译即可通过。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值