当前位置:编程学习 > C#/ASP.NET >>

分享一个小功能, 桌面工作区停靠代码. 附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看电影,老土了。 --------------------编程问答--------------------
引用 1 楼  的回复:
用PPLive看电影,老土了。


PPLive现在广告比较多, 能推荐个更好的么? --------------------编程问答-------------------- 用风行就可以,把广告和游戏勾掉就行了。 --------------------编程问答-------------------- http://www.imdb.com/

IMDB(Internet Movie Database,互联网电影数据库)是目前全球互联网中最大的一个电影资料库,里面包括了几乎所有的电影,以及1982年以后的电视剧集。 --------------------编程问答-------------------- 谢谢分享! --------------------编程问答-------------------- 怎么被搞的非技术区了? 唉呀妈呀, 这这这......... --------------------编程问答-------------------- 这我自己写的, 这不算技术吗? --------------------编程问答-------------------- 唉呀妈呀, 上首页了, 我顶一个. --------------------编程问答-------------------- 谢谢分享! --------------------编程问答-------------------- 下载 收藏了。 --------------------编程问答--------------------
贫僧路过此地、见到楼主吹牛、妖惑众生、老纳唯有捡起一根树枝对着楼主胸前猛刺过去口中念念有词:楼主、我顶你个肺。 --------------------编程问答-------------------- 贫僧路过此地、见到楼主吹牛、妖惑众生、老纳唯有捡起一根树枝对着楼主胸前猛刺过去口中念念有词:楼主、我顶你个肺。 --------------------编程问答-------------------- --------------------编程问答-------------------- 不错,谢谢 --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主好人哦!! --------------------编程问答-------------------- very good,i like it. --------------------编程问答-------------------- pplive是我见过最垃圾的东西。 --------------------编程问答-------------------- 人才啊 --------------------编程问答--------------------
引用 1 楼  的回复:
用PPLive看电影,老土了。


不知道这个年代有破基本 VIP版 去广告版吗? --------------------编程问答-------------------- 楼主,四个角呢??判断下 --------------------编程问答-------------------- 学习、。。。。 --------------------编程问答-------------------- 路过。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 每天回帖 --------------------编程问答-------------------- 我运行 怎么没有效果啊 --------------------编程问答-------------------- 多屏就废了。。 --------------------编程问答--------------------
引用 27 楼  的回复:
多屏就废了。。


多屏我没测试环境, 也不知道多屏的原理. --------------------编程问答-------------------- 谢谢了 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 很好,谢谢分享 --------------------编程问答-------------------- 我记得有一个家伙前一段时间(一个月前还是两月前)分享过采用三个定时器的,可以在四个边自动隐藏的代码,我找不到了,看到的人 顺便把链接贴出来,谢谢 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 这的确是一个很有用的功能啊。学习了。 --------------------编程问答-------------------- 试了一下,发现窗口只有停靠功能,没有自动缩进去的功能。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,