微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c#绘制正方形以突出显示鼠标选择区域

如何解决c#绘制正方形以突出显示鼠标选择区域

我正在使用c#构建部分桌面应用程序的屏幕截图。 Z键启动事件,当鼠标移至下一个点时开始绘制红色矩形,然后再次Z键启动以停止绘制红色框。

问题是它会在非常慢的计算机(如笔记本电脑)中运行非常慢或崩溃。我做错了事,尝试修复了一个月,但没有成功。救救我,拜托。另外,有没有更好的方法或库来解决它?

   private void step1()
        {            
                start = true;
                mypic.pics = mypic.capturepic(Cursor.Position);
                Bmp = new Bitmap(mypic.pics);

              timer1.Enabled = true;
              timer1.Start();
        }
        private void draw_rec_repeat()
        {
            InvalidateRect(IntPtr.Zero,IntPtr.Zero,true);
            IntPtr desktopPtr = GetDC(IntPtr.Zero);
            using (system.drawing.graphics gg = system.drawing.graphics.FromHdc(desktopPtr))
            {
                Rectangle bb = DrawRec(Cursor.Position.X,Cursor.Position.Y,desktopPtr,gg);
                gg.DrawRectangle(new Pen(Color.Red,3),bb);
            }            
            ReleaseDC(this.Handle,desktopPtr);                                                      
        }



    private void timer1_Tick(object sender,EventArgs e)
        {       
            draw_rec_repeat();
        }

解决方法

C# How to Draw a Rubber Band Selection Rectangle on Panel,like one used in Windows Explorer?

它帮助了。屏幕被保存,然后粘贴到最大化的图片框中。然后将矩形绘制到双缓冲图片框控件上。

此外,我尝试使用自定义timer.interval,以使速度较慢的笔记本电脑用户可以减慢绘制时间。

就是这样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。