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

c# 类似于千千静听的桌面停靠程序

2008-11-07 11:25 323 查看
c# 类似于千千静听的桌面停靠程序

下面是程序源代码,如有转载,请保留作者信息,谢谢。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LIKETTPlaryer
{
/// <summary>
/// 类似于千千静听的桌面停靠程序
/// 作者:abrahu
/// 时间:2008-11-07
/// 如有转载,请保留此项
/// </summary>
public partial class Form1 : Form
{
Point p;
int SCREEN_WIDTH;
int SCREEN_HEIGHT;
int BIND;//设置停靠容差

public Form1()
{
InitializeComponent();

Rectangle screen = Screen.GetWorkingArea(this);
SCREEN_WIDTH = screen.Width;
SCREEN_HEIGHT = screen.Height;
BIND = 20;
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
p.X = e.X; p.Y = e.Y;
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int POS_X=this.Left;
int POS_Y=this.Top;
int POS_WIDTH=this.Width;
int POS_HEIGHT=this.Height;
int MOUSE_MOVE_BIND_X = e.X - p.X;
int MOUSE_MOVE_BIND_Y = e.Y - p.Y;
if (POS_X <= BIND && POS_X >= -1*BIND)//停靠在左边
{
this.Left = 0;
if (Math.Abs(MOUSE_MOVE_BIND_X) > BIND)
{
this.Left = POS_X + MOUSE_MOVE_BIND_X;
this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
}
}
if (POS_X >= SCREEN_WIDTH - BIND - POS_WIDTH && POS_X <= SCREEN_WIDTH + BIND - POS_WIDTH)//停靠在右边
{
this.Left = SCREEN_WIDTH - POS_WIDTH;
if (Math.Abs(MOUSE_MOVE_BIND_X) > BIND)
{
this.Left = POS_X + MOUSE_MOVE_BIND_X;
this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
}
}
if (POS_Y <= BIND && POS_Y >= -1 * BIND)//停靠在上边
{
this.Top = 0;
if (Math.Abs(MOUSE_MOVE_BIND_Y) > BIND)
{
this.Left = POS_X + MOUSE_MOVE_BIND_X;
this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
}
}
if (POS_Y >= SCREEN_HEIGHT - BIND - POS_HEIGHT && POS_Y <= SCREEN_HEIGHT + BIND - POS_HEIGHT)//停靠在下边
{
this.Top = SCREEN_HEIGHT - POS_HEIGHT;
if (Math.Abs(MOUSE_MOVE_BIND_Y) > BIND)
{
this.Left = POS_X + MOUSE_MOVE_BIND_X;
this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
}
}
if ((POS_X > BIND && POS_X < SCREEN_WIDTH - BIND - POS_WIDTH && POS_Y > BIND && POS_Y < SCREEN_HEIGHT - BIND - POS_HEIGHT) || POS_X < -1 * BIND || POS_X > SCREEN_WIDTH + BIND - POS_WIDTH || POS_Y > SCREEN_HEIGHT + BIND - POS_HEIGHT || POS_Y < -1 * BIND)
{
this.Left = POS_X + MOUSE_MOVE_BIND_X;
this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
}

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