zoukankan      html  css  js  c++  java
  • 窗口动态效果 AnimateWindow 使用注意。

    本来这个本身没太大的问题,

    在初始化窗口 如 oninitdialog,oncreate和关闭窗口 如onclose的时候,调用AnimateWindow即可实现窗口的动态效果打开和关闭。

    但是:(转下面一段话)

    编译时出现的问题    
       
              在实现动画窗口的程序时,笔者发现如果直接在VC中使用AnimateWindow函数,在编译时会报告出错。以上述程序为例,在编译时系统会报告:      
      '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),请注意两处出现该函数定义的部分都要进行修改。    
      假如你不想修改Winuser.h,可以在工程里的StdAfx.h文件靠前位置加上如下定义    
      #undef   WINVER  
      #define   WINVER   0X500  
         
      具体可以参考源代码  
       
      修改好头文件后,编译即可通过。    

  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1706719.html
Copyright © 2011-2022 走看看