使用AnimateWindow来实现窗口淡入淡出(主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出)
如果是在VC6下进行编译,应引入下面的预编译宏,注意放在windows.h的前面
#undef WINVER
#define WINVER 0x500
为什么要引入上面的宏呢?看看winuser.h里面该API的声明就明白了:
#if(WINVER >= 0x0500)
WINUSERAPI
BOOL
WINAPI
AnimateWindow(
HWND hWnd,
DWORD dwTime,
DWORD dwFlags);
#endif /* WINVER >= 0x0500 */
如果你不进行这个宏的从定义,该API就被排除了,编译会有error。
Declared in Winuser.h, include Windows.h
函数原型:
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_BLEND标志时,该标志将被忽略。
AW_VER_POSITIVE: 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER或者AW_BLEND标志时,该标志将被忽略。
AW_VER_NEGATIVE: 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER或者AW_BLEND标志时,该标志将被忽略。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。在下列情况下函数将失败:
1、如果窗口使用窗口区域,但是XP下不会失败;
2、窗口已经显示了,你还想通过这个API来显示窗口;
3、窗口已经消失了,你试图通过这个API来隐藏窗口;
4、没有为滚动或者滑动指定方向;
5、对一个子窗口使用AW_BLEND;
6、调用这个API的线程并不拥有hwnd指定的窗口;
函数信息:
最小DLL版本: user32.dll
头文件: Declared in Winuser.h, include Windows.h
引入的库: User32.lib
最小操作系统: Windows 98, Windows 2000
注意:使用AnimateWindow来进行淡出时,此时窗口收不到鼠标消息了,如果你有需求:在窗口淡出即将消失时,如果鼠标移上去,窗口恢复正常显示,并且不消失。使用AnimateWindow是没办法实现的,那是否有其它的方法呢?下次再谈,o(∩_∩)o...。
[END]
http://blog.csdn.net/magictong/article/details/4074394
使用AnimateWindow来实现窗口淡入淡出(主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出)的更多相关文章
- jQuery基础(动画篇 animate,显示隐藏,淡入淡出,下拉切换)
1.jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性.但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元 ...
- jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载
jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载 一丶jQuery动画 show,hide, ...
- JQuery--基础动画、滑动动画、淡入淡出动画、自定义动画
/** * [JQ基础动画] * show() 显示 * hide() 隐藏 * toggle() 切换 * 默认无动画,如果要产生动画 * 在括号内,添加毫秒数,可产生动画和控制动画的快慢 * * ...
- 简单的 jQuery 浮动层随窗口滚动滑动插件实例
写了一个非常简单的 jQuery 插件实例 浮动层随窗口滚动滑动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
- Android 四种简单的动画(淡入淡出、旋转、移动、缩放效果)
最近在Android开发当中,用到的动画效果. public void onClick(View arg0) { // TODO 自动生成的方法存根 switch (arg0.getId()) { c ...
- [转]Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)
http://blog.csdn.net/yanzi1225627/article/details/22439119 众所周知,想要让ImageView旋转的话,可以用setRotation()让其围 ...
- 23-[jQuery]-效果:隐藏,淡出,盒子高度,动画
1.隐藏,显示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡...)
众所周知,想要让ImageView旋转的话,可以用setRotation()让其围绕中心点旋转,但这个旋转是不带动画的,也就是旋转屏幕时图片噌的一下就转过去了,看不到旋转的过程,此UI体验不大好,为此 ...
- 除了创建时指定窗口位置之外,还有3种移动窗口位置的办法(移动的同时往往可以改变窗口大小)(SetWindowPos最有用,它有许多标志位)
首先,在创立窗口对象的时候,CreateWindowEx就可以指定窗口的位置.除此之外,还有三种方法可以改变窗口的位置: procedure TWinControl.CreateWindowHandl ...
随机推荐
- AndroidStudio使用properties资源文件
在Android项目开发中,为了一些公用资源使用方便,可以在assets资源文件夹中将需要用到的资源写成.properties或者.json的文件形式,并进行读取使用.在做html5+javascri ...
- sql这两个表和查询的组合yii通过使用数据库查询
sql两个表的组合查询 使用 join on 比如:两个表查询: select u.username, t.title from user u join task t on u.id = t.id; ...
- Java 开源博客——B3log Solo 0.6.5 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...
- 一次解决React+TypeScript+Webpack 别名(alias)找不到问题的过程「转载」
链接 引言 在组件开发中,业务功能和基础组件一般分开放,比如在我们的项目中,components为基础组件, container为业务组件,但是在container中调用components中的组件时 ...
- windows 10 常用快捷键
alt + space:最大.最小.关闭: 多屏互动:win+p 仅此电脑屏幕:复制:拓展:仅第二屏幕: 0. 不同于之前版本的变化 切换输入法:shift + alt: win + space: w ...
- WPF的逻辑树与视觉树(2)Visual容器
原文:WPF的逻辑树与视觉树(2)Visual容器 一.摘要 虽然我们平时几乎不会从该类派生,但要想了解视觉树就必须要了解Visual,Visual是一个基本抽象类,继承自DependencyOb ...
- 使用XCA(X Certificate and key management)可视化项目经理SSL 凭证(4)--凭借自身的凭证管理中心的定义(Certificate Authority)签名证书申请
随着XCA(X Certificate and key management)可视化项目经理SSL 证书系列文章(2)和(3)中.我们学习了怎样用XCA(X Certificate and key m ...
- win10系统应用打不开
可能有一些用户升级Win10之后遇到了应用商店.应用打不开或闪退的问题,此时可尝试通过下面的一些方法来解决. 1.点击任务栏的搜索(Cortana小娜)图标,输入Powershell,在搜索结果中右键 ...
- Oracle使用dblink连接SqlServer
使用场景:当你需要从ORACLE数据库上访问另一台SqlServer数据库的数据时,Oracle提供了一个工具:gateways.通过这个工具,你可以创建dblink来连接sqlserver或其他不同 ...
- Easyui Tab刷新
Easyui Tab刷新: function refreshTab(title){ var tab = $('#id').tab('getTab',title); $('#id').tab('upda ...