如何清除设备上下文

How do I clear a device context?

本文关键字:上下文 清除 何清除      更新时间:2023-10-16

我不确定这是否可能。但基本上我需要的要点是我的Win32程序中的一堆东西是通过WM_PAINT期间的设备上下文绘制到hWnd的。然后通过一个单独的函数,我有更多的东西绘制到hWnd通过相同的DC。不幸的是,因为我使用相同的DC,在WM_PAINT期间绘制的东西仍然保存在DC中,因此随后通过我的函数再次复制。

我需要做的是清除我的设备上下文的内容在WM_PAINT结束或我的函数的开始,这样的东西不会复制两次。

为什么你不能在WM_PAINT处理程序中完成整个绘图?在第二个绘图中你如何绘制?可能会使用GetDC来获取设备上下文和绘图,对吧?问题是,当您在WM_PAINT处理程序外绘制时,当窗口需要重新绘制时,它会被擦除,并且WM_PAINT绘制优于基于GetDC的绘画,除非您使用位元来保持当前上下文的内容

当你需要在WM_PAINT之外的时候,做所有的屏幕外位图,然后简单地将当前位图复制到WM_PAINT内部的HWND