本文介绍了我在桌面上绘制线条并想要删除旧的线条以使线条轮换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在屏幕的左上方进行快速移动的线条运动(以保持警惕),我设法绘制线条,但我想删除前一个(或者如果运动更平滑的那些),如何隐藏桌面上的前一行或其上的任何内容(刷新屏幕的这一部分可能有所帮助)。



我尝试过:



 [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))) ;
}
解决方案


这篇关于我在桌面上绘制线条并想要删除旧的线条以使线条轮换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-09 19:24