我正在使用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#如何像在Windows资源管理器中一样在面板上绘制橡皮筋选择矩形?
它有帮助。屏幕被保存,然后粘贴到最大化的图片框中。然后,将矩形绘制到双缓冲图片框控件上。
另外,我尝试使用自定义timer.interval,以便速度较慢的笔记本电脑用户可以减慢绘制时间。
就是这样
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句