C#调用API函数给Winform窗体添加动态特效
来源:互联网 发布:hm淘宝官网旗舰店 编辑:程序博客网 时间:2024/05/15 08:08
想让你的Winform窗体美化得更炫、更美丽,光是有漂亮的C#皮肤、背景贴图等这些静态的部分是远远不够的,还需要有一些动态部分的加持才能让你的程序界面有更好的用户体验。
这里要介绍的是调用user32.dll中的API函数来给Winform界面添加动态特效。user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。与C++一样,在C#中同样可以利用user32里面的一些API函数来开发WINFORM程序。
1.导入user32.dll并声明API函数AnimateWindow
//导入user32.dll
[System.Runtime.InteropServices.DllImport(" user32 " )]
// 声明API函数
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
[System.Runtime.InteropServices.DllImport(" user32 " )]
// 声明API函数
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
AnimateWindow函数里面的3个传参的说明如下:
hwnd 界面上控件的句柄
dwTime 窗体特效执行的持续时间(1=1毫秒、1000=1秒)
dwFlags 窗体特效的值
2.dwFlags要传的参数是一些INT类型的常量,这些常量定义了该特效具体有哪些动作。
// 正面_水平方向
const int AW_HOR_POSITIVE = 0x0001;
// 负面_水平方向
const int AW_HOR_NEGATIVE = 0x0002;
// 正面_垂直方向
const int AW_VER_POSITIVE = 0x0004;
// 负面_垂直方向
const int AW_VER_NEGATIVE = 0x0008;
// 由中间四周展开或由四周向中间缩小
const int AW_CENTER = 0x0010;
// 隐藏对象
const int AW_HIDE = 0x10000;
// 显示对象
const int AW_ACTIVATE = 0x20000;
// 拉幕滑动效果
const int AW_SLIDE = 0x40000;
// 淡入淡出渐变效果
const int AW_BLEND = 0x80000;
const int AW_HOR_POSITIVE = 0x0001;
// 负面_水平方向
const int AW_HOR_NEGATIVE = 0x0002;
// 正面_垂直方向
const int AW_VER_POSITIVE = 0x0004;
// 负面_垂直方向
const int AW_VER_NEGATIVE = 0x0008;
// 由中间四周展开或由四周向中间缩小
const int AW_CENTER = 0x0010;
// 隐藏对象
const int AW_HIDE = 0x10000;
// 显示对象
const int AW_ACTIVATE = 0x20000;
// 拉幕滑动效果
const int AW_SLIDE = 0x40000;
// 淡入淡出渐变效果
const int AW_BLEND = 0x80000;
当然编写代码的时候可以将这些INT值全部放含在一个枚举类中,这样在程序里引用起来会更方便
3.在程序事件中调用AnimateWindow方法,执行窗体特效。
//动画——窗体由四周向中心缩小直至消失
// AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE表示三种特效状态的集合,以“|”间隔,这和C++上调用 API函数差不多
// this.Handle为主窗体的句柄,用其他控件的句柄亦可
AnimateWindow(this .Handle, 1000 , AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE);
// AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE表示三种特效状态的集合,以“|”间隔,这和C++上调用 API函数差不多
// this.Handle为主窗体的句柄,用其他控件的句柄亦可
AnimateWindow(this .Handle, 1000 , AW_CENTER | AW_HIDE | AW_HOR_NEGATIVE);
4.这里给个为Winform窗体添加动态特效的程序例子:Sample
- C#调用API函数给Winform窗体添加动态特效
- C#调用API函数给Winform窗体添加动态特效
- [C#新手入门 一] 调用API函数给Winform窗体添加动态特效(转)
- winform窗体添加动态效果
- c# winform 子窗体更新父窗体,调用父窗体的函数
- C#中动态调用API函数
- C#Winform窗体中添加WebService引用,并提供动态链接地址给程序
- C#给WinForm(窗体)下DataGridView控件添加单选选或多选按钮列
- C#调用Windows API函数,实现透明窗体
- C#调用API函数查找窗体并关闭
- winform窗体特效
- winform 窗体特效
- 利用反射,实现动态调用winform窗体!!
- 利用反射,实现动态调用winform窗体!!
- C# WinForm 动态添加控件
- C# Winform 动态添加菜单
- C# winform 动态添加控件
- C# WPF 动态添加窗体
- aspx页面输出xml格式
- ARM-Linux s3c2440 之中断分析(三)
- badVersion For ClassFile
- 直接调用类成员函数地址
- Flex 容器阴影
- C#调用API函数给Winform窗体添加动态特效
- 学习微软 Script技术的重要资源
- acm生涯结束记
- 【Linux】GTK+图形化应用程序开发学习笔记(一)—概述
- Matlab 函数进阶:使用匿名函数和内嵌函数处理多变量传递问题(Matlab 7.0以上)
- 运用autoconf和automake生成makefile文件
- 【GTK】GTK+图形化应用程序开发学习笔记(二)—Glib库
- PHP垃圾回收机制简单说明
- Linux 2.6.32系统中基于dm6467平台ASOC架构的音频驱动