我正在使用BitBlt
and直接在屏幕上绘图GetDC(IntPtr.Zero)
。完成后是否有某种方法可以在整个屏幕上调用 Refresh 或 Invalidate,这样我就不会在各处留下大块油漆(从数字上讲)?
更新: 当您像我正在做的那样直接在屏幕上绘制时,无论您绘制什么都保留在那里,直到它下面的窗口重新绘制自身(并且这样做,重新绘制它所覆盖的屏幕部分)。
问题是 Windows 桌面的某些部分不会长时间重新绘制自己。例如,如果我在任务栏顶部绘制,实际任务会很快重新绘制自己(以及“开始”按钮等),但任务栏本身会保留我所绘制的内容长达几分钟。
如果我的应用程序有一个覆盖整个屏幕的窗口,我只会调用Invalidate()
该表单,这会导致它重新绘制自身并因此重新绘制整个屏幕。我需要的是某种调用方式Invalidate
或Refresh
整个屏幕本身。