让你的桌面飘满玫瑰心吧!
2011-12-27 13:12:00
作者:IT伯伯
所属分类:WinForm编程
阅读:542
评论:6
标签:
Winform编程, 有你的幸福, 玫瑰心
想让你的桌面飘满浪漫的玫瑰心吗?想给你心爱的人送份特别的礼物呢?呵呵,今天送给大家一份C#开发的WinForm程序,实现桌面飘雪效果,还有好听的背景音乐哦~~
来看看我实现的效果吧:

主要的程序代码还是很简单的,下面把主要代码分解一下:
1.满屏幕飞舞的心的绘制
-
- Graphics g = e.Graphics;
- g.SmoothingMode = SmoothingMode.AntiAlias;
-
- foreach (SnowFlake s in SnowFlakes)
- {
- g.ResetTransform();
- g.TranslateTransform(0, -16, MatrixOrder.Append);
- g.ScaleTransform(s.Scale, s.Scale, MatrixOrder.Append);
- g.RotateTransform(s.Rotation, MatrixOrder.Prepend);
- g.TranslateTransform(s.X, s.Y, MatrixOrder.Append);
-
- g.DrawImage(Snow, 0, 0);
- }
2.创建、移动和删除玫瑰心,刷新屏幕
-
-
-
-
-
- private void OnTick(object sender, EventArgs args)
- {
- Tick++;
-
-
- if (Tick % 3 == 0 && Random.NextDouble() < 0.70)
- {
- SnowFlake s = new SnowFlake();
- s.X = Random.Next(-50, Width + 50);
- s.Y = Random.Next(-20, -7);
- s.XVelocity = (float)(Random.NextDouble() - 0.5f) * 2f;
- s.YVelocity = (float)(Random.NextDouble() * 3) + 1f;
- s.Rotation = Random.Next(0, 359);
- s.RotVelocity = Random.Next(-3, 3) * 2;
-
- if (s.RotVelocity == 0)
- {
- s.RotVelocity = 3;
- }
-
- s.Scale = (float)(Random.NextDouble() / 2) + 0.75f;
- SnowFlakes.Add(s);
- }
-
-
- List<SnowFlake> del = new List<SnowFlake>();
- foreach (SnowFlake s in SnowFlakes)
- {
- s.X += s.XVelocity;
- s.Y += s.YVelocity;
- s.Rotation += s.RotVelocity;
-
- s.XVelocity += ((float)Random.NextDouble() - 0.5f) * 0.7f;
- s.XVelocity = Math.Max(s.XVelocity, -2f);
- s.XVelocity = Math.Min(s.XVelocity, +2f);
-
- if (s.YVelocity > Height + 10)
- {
- del.Add(s);
- }
- }
-
-
- foreach (SnowFlake s in del)
- {
- SnowFlakes.Remove(s);
- }
-
-
- Refresh();
- }
3.背景音乐播放所用到的Win32API
- public class APIClass
- {
- [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
- public static extern int GetShortPathName(
- string lpszLongPath,
- string shortFile,
- int cchBuffer
- );
-
- [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
- public static extern int mciSendString(
- string lpstrCommand,
- string lpstrReturnString,
- int uReturnLength,
- int hwndCallback
- );
- }
»
郑重声明:本文由
IT伯伯发布,所有内容仅代表个人观点。版权归
IT伯伯和
IT伯伯共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
下载了,哈哈…
呵呵~~
其实我已经知道你是谁了的呢~~丫头
哈哈,这个玫瑰很特别哦,我这里也有一个,只要一点击就开始时出现玫瑰花直到屏幕被铺满
这个停止好像要自己结束进程才行的
这个停止,只要双击下托盘图标就可以了···
加个成品下载地址,不编程的也可以下载使用撒~~~