您的位置:首页 > 编程语言 > C#

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

2008-12-13 00:56 731 查看
一、实现功能

程序开始运行屏幕右下角弹出提示框、等待、移出

当提示框移动到最高点时,鼠标悬停时等待

二、编写代码前需要确定的内容

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

private void MoveForm_MouseEnter(object sender, EventArgs e)
{
this.mouseEnter = true;
}

private void MoveForm_MouseLeave(object sender, EventArgs e)
{
this.mouseEnter = false;
}

3、初始化

初始化窗口大小

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

设置开始位置

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

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

设置结束位置

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

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

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

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

4、具体实现逻辑

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

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

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

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

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

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

否则等待时间控件有效

具体请看代码 WindowsMoveDemo.rar

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

作者:徐沈
出处:http://XuShen8314.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

td { font-size: 12px }
.commentTextBox
{
font-family : Verdana;
font-size: 13px;
}

a.blue:visited,
a.blue:active,
a.blue:link,
a.blue:hover
{
color:blue;

}

.userData { BEHAVIOR: url(#default#userdata) }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: