c#绘制正方形高亮鼠标选择区域
c# Drawing square to highlight mouse selection area
我正在使用 C# 为桌面应用程序的一部分构建屏幕捕获。当鼠标移动到下一个点时 Z keyup 事件开始绘制红色矩形,然后再次 Z keyup 停止绘制红色框。
问题是它会 运行 非常慢或在笔记本电脑等慢速计算机上崩溃。我做错了什么,我试图修复它一个月,但没有用。请帮助我。另外,有没有更好的方法或库来解决它?
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?
很有帮助。屏幕被保存然后粘贴到最大化的图片框中。然后我在 double-buffered 图片框控件上绘制矩形。
此外,我尝试使用自定义 timer.interval 以便慢速笔记本电脑用户可以减慢绘制时间。
就是这样。
我正在使用 C# 为桌面应用程序的一部分构建屏幕捕获。当鼠标移动到下一个点时 Z keyup 事件开始绘制红色矩形,然后再次 Z keyup 停止绘制红色框。
问题是它会 运行 非常慢或在笔记本电脑等慢速计算机上崩溃。我做错了什么,我试图修复它一个月,但没有用。请帮助我。另外,有没有更好的方法或库来解决它?
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?
很有帮助。屏幕被保存然后粘贴到最大化的图片框中。然后我在 double-buffered 图片框控件上绘制矩形。
此外,我尝试使用自定义 timer.interval 以便慢速笔记本电脑用户可以减慢绘制时间。
就是这样。