本文介绍了我在桌面上绘制线条并想要删除旧的线条以使线条轮换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在屏幕的左上方进行快速移动的线条运动(以保持警惕),我设法绘制线条,但我想删除前一个(或者如果运动更平滑的那些),如何隐藏桌面上的前一行或其上的任何内容(刷新屏幕的这一部分可能有所帮助)。
我尝试过:
[DllImport(User32.dll)]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport(User32.dll)]
public static extern void ReleaseDC(IntPtr hwnd,IntPtr dc);
//获取整个屏幕的Graphics对象并用它绘制一个矩形:
int currentLine = 0,totalNumOfLines = 12;
点数=新点(60,60);
private void FormSettings_Load(object sender,EventArgs e)
{
desktopPtr = GetDC(IntPtr.Zero);
g = Graphics.FromHdc(desktopPtr);
}
IntPtr desktopPtr;
图形g;
private void FormSettings_FormClosed(object sender,FormClosedEventArgs e)
{
g.Dispose();
ReleaseDC(IntPtr.Zero,desktopPtr);
}
private void timerDraw_Tick(object sender,EventArgs e)
{
g.Dispose();
ReleaseDC(IntPtr.Zero,desktopPtr);
desktopPtr = GetDC(IntPtr.Zero);
g = Graphics.FromHdc(desktopPtr);
currentLine ++;
if(currentLine == totalNumOfLines)currentLine = 0;
g.DrawLine(新笔(Color.Yellow,2),point.X,point.Y
,point.X +(int)(50 * Math.Cos((currentLine) /(double)totalNumOfLines)* Math.PI * 2))
,point.Y +(int)(50 * Math.Sin((currentLine /(double)totalNumOfLines)* Math.PI * 2))) ;
}
解决方案
这篇关于我在桌面上绘制线条并想要删除旧的线条以使线条轮换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!