only .Net技术

coding by c# only...................
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# 模仿QQ、MSN消息提示系列 二、基本效果模仿包含代码

Posted on 2008-07-29 23:02  秦奋  阅读(3100)  评论(0编辑  收藏  举报

 

C# 模仿QQ、MSN消息提示系列 一、基本原理

C# 模仿QQ、MSN消息提示系列 二、基本效果模仿包含代码

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 增加 枚举类型

1 public enum FormMoveState
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;


Code

 

 

 

3、初始化

 初始化窗口大小

为使窗口更加美观设置窗口的大小和背景大小一样

 设置开始位置

开始位置X坐标=工作区域宽度-窗口宽度-窗口距离屏幕右边的距离

开始位置Y坐标=工作区域高度

 设置结束位置

结束位置X坐标=开始位置X坐标(因为提示窗口只是上下移动所以横坐标是一致的)

结束位置Y坐标=工作区域高度-窗口高度

设置窗口的初始位置为开始位置

设置开始时间控件的为可用

 

4、具体实现逻辑

开始时间控件负责在每次执行时把窗体的纵坐标-1

结束时间控件负责在每次执行时把窗体的纵坐标+1

等待时间空间每次执行时更新等待次数

鼠标检测控件负责判断鼠标当前的状态

如果鼠标在窗口上并且窗口的状态为等待状态

则等待时间控件失效(也就是继续等待)

否则等待时间控件有效

 

 

具体请看代码 WindowsMoveDemo.rar

 

初次写教程类文章,还请大家多多指教。。。