巧用内置函数+句柄实现:动态显示窗体效果
2013-04-16 18:31
323 查看
今天再给大家带来一个小程序:使用系统内置函数+句柄控制、实现动态显示窗体的效果。先简单的来介绍一下功能可以实现的效果:
1、酷狗音乐用过吧?当我们关闭窗体时、窗体动态关闭:高度先变扁、然后再变窄、最后缩小成为一个光点、 2、QQ2013、登录成功后、窗体以卷帘的方式向上收缩、 3、等等。。。
当然、在此之前、你也可以自己实现这个效果:例如在窗体上放置几个Timer控件、 在窗体加载时,动态改变窗体的宽高、达到动态显示窗体的效果、然后在窗体关闭时事件中再动态改变窗体的宽高、达到动态关闭窗体的效果、
但是、这样的写法只会让你的程序变卡、用户体验度大打折扣、
也许你还会问?提供的函数有多少效果呢?会不会没有我自己用Timer写的效果多呢? 可以实现的效果有:自上向下、自下向上、自左向右、自由向左、滑入滑出、渐变等。详细的下面有介绍。
既然微软内置了这种效果的对外接口、我们为什么不用呢?因此、下面我来介绍一些这个程序的制作过程:
——————————————————————————————————————
首先、新建一个WinForm程序、默认会给你一个窗体吧(没有就添加一个)?命名这个窗体名为frmMain.cs、
然后打开这个窗体的设计器、按下F7、进入这个窗体的代码编辑界面、引入以下命名空间:
缺少“GUYING_HIDE”解决方案
也许你在运行的时候会发现、慢慢显示的时候、窗体部分是动态慢慢显示的、但是、窗体的边缘、也就是窗体的边框、提前显示出来了、什么情况?怎么办? 这是因为我们的函数控制的是当前窗体的句柄、窗体的边框并不包括在内、怎么办? 善意的提醒你一下、窗体有个“FormBorderStyle”属性、
如果你非要加载显示动画时、不提前显示边框、动画显示后在显示边框、下面是办法: 在构造加载出控件之后 窗体Load显示之前、可以将边框设置为none、动画执行后、再将边框样式设置回去、 下面的就不用我教你了吧、
因为我主要讲的是这个效果的制作、因此别的我没有考虑进去、 例如、效果常量和效果实现的函数接口引入、我们可以单独写一个公共类、最后、我们用的时候、引用这个公共类中的数据、
好了、不罗嗦了、如果程序还是没有看懂、可以私下联系我、联系方式在个人资料里。
【原文来自:http://www.cnblogs.com/HackerGuying,尊重原创、转载请注明出处!】
1、酷狗音乐用过吧?当我们关闭窗体时、窗体动态关闭:高度先变扁、然后再变窄、最后缩小成为一个光点、 2、QQ2013、登录成功后、窗体以卷帘的方式向上收缩、 3、等等。。。
当然、在此之前、你也可以自己实现这个效果:例如在窗体上放置几个Timer控件、 在窗体加载时,动态改变窗体的宽高、达到动态显示窗体的效果、然后在窗体关闭时事件中再动态改变窗体的宽高、达到动态关闭窗体的效果、
但是、这样的写法只会让你的程序变卡、用户体验度大打折扣、
也许你还会问?提供的函数有多少效果呢?会不会没有我自己用Timer写的效果多呢? 可以实现的效果有:自上向下、自下向上、自左向右、自由向左、滑入滑出、渐变等。详细的下面有介绍。
既然微软内置了这种效果的对外接口、我们为什么不用呢?因此、下面我来介绍一些这个程序的制作过程:
——————————————————————————————————————
首先、新建一个WinForm程序、默认会给你一个窗体吧(没有就添加一个)?命名这个窗体名为frmMain.cs、
然后打开这个窗体的设计器、按下F7、进入这个窗体的代码编辑界面、引入以下命名空间:
缺少“GUYING_HIDE”解决方案
//窗体加载完控件之后、开始执行窗体动画 private void frmMain_Load(object sender, EventArgs e) { AnimateWindow(this.Handle, 300, GUYING_BLEND); //由于渐变显示、所以不加“GUYING_HIDE” } //窗体关闭时、开始执行窗体动画 private void frmMain_FormClosed(object sender, FormClosedEventArgs e) { AnimateWindow(this.Handle, 300, GUYING_BLEND + GUYING_HIDE); //由于渐变隐藏、所以需要加“GUYING_HIDE” }
也许你在运行的时候会发现、慢慢显示的时候、窗体部分是动态慢慢显示的、但是、窗体的边缘、也就是窗体的边框、提前显示出来了、什么情况?怎么办? 这是因为我们的函数控制的是当前窗体的句柄、窗体的边框并不包括在内、怎么办? 善意的提醒你一下、窗体有个“FormBorderStyle”属性、
如果你非要加载显示动画时、不提前显示边框、动画显示后在显示边框、下面是办法: 在构造加载出控件之后 窗体Load显示之前、可以将边框设置为none、动画执行后、再将边框样式设置回去、 下面的就不用我教你了吧、
因为我主要讲的是这个效果的制作、因此别的我没有考虑进去、 例如、效果常量和效果实现的函数接口引入、我们可以单独写一个公共类、最后、我们用的时候、引用这个公共类中的数据、
好了、不罗嗦了、如果程序还是没有看懂、可以私下联系我、联系方式在个人资料里。
【原文来自:http://www.cnblogs.com/HackerGuying,尊重原创、转载请注明出处!】
相关文章推荐
- 用src属性动态替换图片;图片预加载---鼠标事件实现图片翻转效果;随机显示图片和onClick事件
- 纯jsp实现的倒计时动态显示效果完整代码
- jquery实现隐藏显示层动画效果、仿新浪字符动态输入、tab效果
- MFC窗体滑动、缩放、渐变动态效果的实现
- Android数字动态显示,仿支付宝app效果简单的实现。字数从0-x!!!
- java实现gif动画效果(java显示动态图片)
- winform如何用Timer实现将时间动态显示在窗体上?
- 关于jquery解析json数据时动态追加tr 指定条数换行问题 实现list的 并列显示效果
- jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
- C#实现WinForm窗体逐渐显示效果
- Jquery实现动态效果的显示和隐藏控件
- Android 实现密码输入框动态明文/密文切换显示效果
- 纯jsp中实现倒计时动态显示效果。
- Java之简单的图片动态显示(实现类似GIF动画效果)
- 基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
- jQuery实现鼠标滑过图片时会缩小并动态显示信息的幻灯效果
- 窗体动态效果的实现
- Qt 之 QQ系统表情—实现动态显示效果
- Android自定义控件View(实现控件的动画效果,自定义类画简略时钟,TextView中文字逐一显示,动态设置progress的圆环/扇形ProgressBar等)
- 基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码