C# 模仿QQ、MSN消息提示系列 二、基本效果模仿包含代码
C# 模仿QQ、MSN消息提示系列 四、bug修改 效果优化
C# 模仿QQ、MSN消息提示系列 五、改进 只使用两个时间控件一、实现功能
程序开始运行屏幕右下角弹出提示框、等待、移出
当提示框移动到最高点时,鼠标悬停时等待
二、编写代码前需要确定的内容
1、确定窗口滚动的起始位置
2、确定窗口滚动的终止位置
3、确定窗口当前的滚动状态
4、确定窗口距离屏幕右边的距离单位像素
5、确定等待时间
6、确定鼠标是否悬停
三、编写代码
1、创建一个Form窗体
为了效果好看些我把Form的 FormBorderStyle属性设置为None
并且把一个美女图片作为Form背景
如图
2、给Form增加属性
针对准备1 增加 private Point StartPoint;
针对准备2 增加 private Point EndPoint;
针对准备3 增加 枚举类型
2 {
3 MoveTop,Waiting,MoveDown
4 }
增加 private FormMoveState State;
还需要增加四个 时间控件
针对准备4 增加 private int marginRight = 10;
针对准备5 增加 private int waitCount = 100;(需要等待waitingTimer循环的次数)
private int waitedCount = 0;(需要等待waitingTimer已经循环的次数)
针对准备6 增加 private bool mouseEnter;
3、初始化
初始化窗口大小
为使窗口更加美观设置窗口的大小和背景大小一样
设置开始位置
开始位置X坐标=工作区域宽度-窗口宽度-窗口距离屏幕右边的距离
开始位置Y坐标=工作区域高度
设置结束位置
结束位置X坐标=开始位置X坐标(因为提示窗口只是上下移动所以横坐标是一致的)
结束位置Y坐标=工作区域高度-窗口高度
设置窗口的初始位置为开始位置
设置开始时间控件的为可用
4、具体实现逻辑
开始时间控件负责在每次执行时把窗体的纵坐标-1
结束时间控件负责在每次执行时把窗体的纵坐标+1
等待时间空间每次执行时更新等待次数
鼠标检测控件负责判断鼠标当前的状态
如果鼠标在窗口上并且窗口的状态为等待状态
则等待时间控件失效(也就是继续等待)
否则等待时间控件有效
具体请看代码 WindowsMoveDemo.rar
初次写教程类文章,还请大家多多指教。。。
出处:http://XuShen8314.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
个人网站:http://www.198314.com