winform使用api实现的窗口特效代码

简介:

以下是一段使用api的窗口特效代码,小测一把看是不是在窗口显示的时候会显示各种特殊效果,实践出真理!

[System.Runtime.InteropServices.DllImport("user32")]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
private const int AW_HOR_POSITIVE = 0x0001;//从左向右显示
private const int AW_HOR_NEGATIVE = 0x0002;//从右向左显示
private const int AW_VER_POSITIVE = 0x0004;//从上到下显示
private const int AW_VER_NEGATIVE = 0x0008;//从下到上显示
private const int AW_CENTER = 0x0010;//从中间向四周
private const int AW_HIDE = 0x10000;
private const int AW_ACTIVATE = 0x20000;//普通显示
private const int AW_SLIDE = 0x40000;
private const int AW_BLEND = 0x80000;//透明渐变显示效果

private void Form1_Load(object sender, System.EventArgs e)
{
int animatetype = 10;
Random a = new Random();
int dwFlags = (int)a.Next(animatetype);
switch (dwFlags)
{
case 0://普通显示
AnimateWindow(Handle, 1000, AW_ACTIVATE);
break;
case 1://从左向右显示
AnimateWindow(Handle, 1000, AW_HOR_POSITIVE);
break;
case 2://从右向左显示
AnimateWindow(Handle, 1000, AW_HOR_NEGATIVE);
break;
case 3://从上到下显示
AnimateWindow(Handle, 1000, AW_VER_POSITIVE);
break;
case 4://从下到上显示
AnimateWindow(Handle, 1000, AW_VER_NEGATIVE);
break;
case 5://透明渐变显示
AnimateWindow(Handle, 1000, AW_BLEND);
break;
case 6://从中间向四周
AnimateWindow(Handle, 1000, AW_CENTER);
break;
case 7://左上角伸展
AnimateWindow(Handle, 1000, AW_SLIDE | AW_HOR_POSITIVE | AW_VER_POSITIVE);
break;
case 8://左下角伸展
AnimateWindow(Handle, 1000, AW_SLIDE | AW_HOR_POSITIVE | AW_VER_NEGATIVE);
break;
case 9://右上角伸展
AnimateWindow(Handle, 1000, AW_SLIDE | AW_HOR_NEGATIVE | AW_VER_POSITIVE);
break;
case 10://右下角伸展
AnimateWindow(Handle, 1000, AW_SLIDE | AW_HOR_NEGATIVE | AW_VER_NEGATIVE);
break;
}
}

private void Form1_FormClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_HIDE | AW_VER_NEGATIVE);
}




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/09/09/1563026.html,如需转载请自行联系原作者


相关文章
|
3月前
|
前端开发 JavaScript API
React API 和代码重用的演变!
React API 和代码重用的演变!
|
6月前
|
缓存 API 流计算
Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器
Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器
|
3月前
|
API C++
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(1)
前言   本文旨在学习socket网络编程这一块的内容,epoll是重中之重,后续文章写reactor模型是建立在epoll之上的。
34 0
|
3月前
|
监控 安全 Linux
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(3)
高并发服务器模型-poll poll介绍   poll跟select类似, 监控多路IO, 但poll不能跨平台。其实poll就是把select三个文件描述符集合变成一个集合了。
36 0
|
3月前
|
API Python Windows
python3应用windows api对后台程序窗口及桌面截图并保存的方法
python3应用windows api对后台程序窗口及桌面截图并保存的方法
93 1
|
1月前
|
Java API PHP
获取1688商品详情API:步骤与代码示例
在电子商务领域,阿里巴巴的1688平台是一个广受商家和开发者欢迎的批发交易市场。若您是一名开发者,希望建立自己的应用程序或网站来获取并展示1688上的商品信息,您可能需要使用到1688提供的API接口。以下是获取1688商品详情API的详细步骤说明。
|
1月前
|
JSON 缓存 API
淘宝天猫获取sku详细信息 API 调用文档 及请求代码
淘宝天猫获取SKU详细信息的API调用通常涉及到商品信息的API接口。在淘宝开放平台或天猫开放平台上,你可以找到相关的API文档和调用示例。下面是一个简化的步骤和示例代码来展示如何调用这些API:
|
2月前
|
存储 Oracle Java
Java 包和 API 深度解析:组织代码,避免命名冲突
Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。我们使用包来避免名称冲突,并编写更易于维护的代码。 包分为两类: 内置包(来自 Java API 的包) 用户定义的包(创建自己的包)
309 2
|
2月前
|
弹性计算 前端开发 Java
通义千问API:让大模型写代码和跑代码
基于前面三章的铺垫,本章我们将展示大模型Agent的强大能力。我们不仅要实现让大模型同时使用多种查询工具,还要实现让大模型能查询天气情况,最后让大模型自己写代码来查询天气情况。
59703 448
通义千问API:让大模型写代码和跑代码