分享一个小功能, 桌面工作区停靠代码. 附Demo下载地址.
原文地址http://hi.baidu.com/windowssdk/item/c0dd1a0ad2b379d075cd3cf0
源码下载地址
http://www.everbox.com/f/2H5ya8hwKpPGxBTNSCg1zVWOY6
经常用PPLive看电影发现它的桌面停靠非常方便, 所以想给自己的程序加上这个个小功能.
之所以说"工作区"是因为类似Google Desktop工具的存在, 它会改变工作区域大小, PPLive是不知道工作区边界地, 有待改进.
动画演示太麻烦, 直接上代码吧.
/// <summary>
/// 鼠标坐标
/// </summary>
private Point PointMouse;
/// <summary>
/// 停靠范围
///
/// 用变量可以支持用户自定义修改属性.
/// </summary>
private int IntDockWidth = 15;
private void Controls_MouseDown( object sender, MouseEventArgs e ) {
PointMouse = new Point( -e.X, -e.Y );
Control c = ( Control )sender;
PointMouse.Offset( -c.Left, -c.Top );
}
private void Controls_MouseMove( object sender, MouseEventArgs e ) {
if ( e.Button == MouseButtons.Left ) {
Point mousePos = System.Windows.Forms.Control.MousePosition;
mousePos.Offset( PointMouse.X, PointMouse.Y );
//判断是否已经处于边缘
if ( ( mousePos.X - System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.X ) <= IntDockWidth ) {
//左边
mousePos.X = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.X;
} else if ( ( System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - mousePos.X - this.Width ) <= IntDockWidth ) {
//右边
mousePos.X = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.Width;
}
if ( ( mousePos.Y - System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Y ) <= IntDockWidth ) {
//上面
mousePos.Y = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Y;
} else if ( ( System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - mousePos.Y - this.Height ) <= IntDockWidth ) {
//下边
mousePos.Y = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - this.Height;
}
this.Location = mousePos;
}
}
订阅事件即可 --------------------编程问答-------------------- 用PPLive看电影,老土了。 --------------------编程问答--------------------
PPLive现在广告比较多, 能推荐个更好的么? --------------------编程问答-------------------- 用风行就可以,把广告和游戏勾掉就行了。 --------------------编程问答-------------------- http://www.imdb.com/
IMDB(Internet Movie Database,互联网电影数据库)是目前全球互联网中最大的一个电影资料库,里面包括了几乎所有的电影,以及1982年以后的电视剧集。 --------------------编程问答-------------------- 谢谢分享! --------------------编程问答-------------------- 怎么被搞的非技术区了? 唉呀妈呀, 这这这......... --------------------编程问答-------------------- 这我自己写的, 这不算技术吗? --------------------编程问答-------------------- 唉呀妈呀, 上首页了, 我顶一个. --------------------编程问答-------------------- 谢谢分享! --------------------编程问答-------------------- 下载 收藏了。 --------------------编程问答--------------------
贫僧路过此地、见到楼主吹牛、妖惑众生、老纳唯有捡起一根树枝对着楼主胸前猛刺过去口中念念有词:楼主、我顶你个肺。 --------------------编程问答-------------------- 贫僧路过此地、见到楼主吹牛、妖惑众生、老纳唯有捡起一根树枝对着楼主胸前猛刺过去口中念念有词:楼主、我顶你个肺。 --------------------编程问答-------------------- --------------------编程问答-------------------- 不错,谢谢 --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主好人哦!! --------------------编程问答-------------------- very good,i like it. --------------------编程问答-------------------- pplive是我见过最垃圾的东西。 --------------------编程问答-------------------- 人才啊 --------------------编程问答--------------------
不知道这个年代有破基本 VIP版 去广告版吗? --------------------编程问答-------------------- 楼主,四个角呢??判断下 --------------------编程问答-------------------- 学习、。。。。 --------------------编程问答-------------------- 路过。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 每天回帖 --------------------编程问答-------------------- 我运行 怎么没有效果啊 --------------------编程问答-------------------- 多屏就废了。。 --------------------编程问答--------------------
多屏我没测试环境, 也不知道多屏的原理. --------------------编程问答-------------------- 谢谢了 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 很好,谢谢分享 --------------------编程问答-------------------- 我记得有一个家伙前一段时间(一个月前还是两月前)分享过采用三个定时器的,可以在四个边自动隐藏的代码,我找不到了,看到的人 顺便把链接贴出来,谢谢 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 这的确是一个很有用的功能啊。学习了。 --------------------编程问答-------------------- 试了一下,发现窗口只有停靠功能,没有自动缩进去的功能。
补充:.NET技术 , 非技术区