CSDN Blog 第一个文章

原创 2006年05月24日 17:53:00

最近的第一个问题:画一个鼠标拖动调整大小的虚线矩形框,好像叫橡皮筋框。在DotNet C#开发。

之前没有找到好的方法来画,以至于使用GDI API中的方式去做,后来发现了简单的方法,^_^。

C#有一个函数System.Windows.Forms.ControlPaint.DrawReversibleFrame(),用来画一个可以改变大小的矩形框。可以重复调用该函数,如果两次是在同一个地方画,那么就相当于进行了擦除操作,很方便啊

下面是代码片断:

        bool isSelectRec = false;
        Point startPoint = new Point();
        Point endPoint = new Point();
        Rectangle rc = new Rectangle();

       private void mouseHook_LeftButtonDown(Point point)
        {
            currentPoint = point;
            if (currentPoint != null)
            {
                if(!isSelectRec)
                {
                    isSelectRec = true;
                    startPoint = point;
                    endPoint = point;
                    if (rc.Width != 0 || rc.Height != 0)
                    {
                        System.Windows.Forms.ControlPaint.DrawReversibleFrame(rc, Color.Tomato, FrameStyle.Dashed);
                    }
                    rc.X = startPoint.X;
                    rc.Y = startPoint.Y;
                    rc.Width = 0;
                    rc.Height = 0;
                }
            }
        }

        private void mouseHook_LeftButtonUp(Point point)
        {
            currentPoint = point;
            if (currentPoint != null)
            {
                if (isSelectRec)
                {
                    isSelectRec = false;
                }
            }
        }

        private void mouseHook_Move(Point point)
        {
            currentPoint = point;
            if (currentPoint != null)
            {
                if (isSelectRec)
                {
                    endPoint = point;
                    DrawSelectRec(startPoint,endPoint);
                }
            }
        }

        private void DrawSelectRec(Point startPoint, Point endPoint)
        {
            System.Windows.Forms.ControlPaint.DrawReversibleFrame(rc, Color.Tomato, FrameStyle.Dashed);
            rc.Width = endPoint.X - startPoint.X;
            rc.Height = endPoint.Y - startPoint.Y;
            System.Windows.Forms.ControlPaint.DrawReversibleFrame(rc, Color.Tomato, FrameStyle.Dashed);
        }

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

http://blog.csdn.net/w00w12l/article/details/8143591?locationNum=14&fps=1 转载请注明出处 Android异步处理系列文章索引

在《Android异步处理二:使用AsyncTask异步更新UI界面》一文中,我们介绍了如何使用AsyncTask实现异步下载图片,并且更新图片到UI界面的方法。本篇我们将学习Framework层As...

csdn如何转载别人的文章 - jiangping_zhu的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/jiangping_zhu/article/detail

csdn如何转载别人的文章 分类: 游戏开发2014-01-09 17:25 88人阅读 评论(0) 收藏 举报 1、找到要转载的文章,用chrome浏览器打开,右键选择审查元素 ...

Django:快速搭建自己打第一个的Blog

摘要: 利用Django快速搭建一个简单的Blog。参考自《Django Web开发指南》第二章。 一直有种想要搭建自己博客系统打冲动,可惜需要前端知识较多,而且还要安装一系列软件并配置(window...

csdn blog 感兴趣的博客

1+1=2的 blog 文章索引

本blog太乱了?文章相互之间没有关联?,那么从本文开始可能是比较好的^_^。主要内容:本 blog 中和之前发布在其他 blog 中文章的索引。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)