如何清除设备上下文?

时间:2012-12-31 07:45:07

标签: c++ winapi device

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

我需要做的是在WM_PAINT结束时或我的函数开头清除设备上下文的内容,以便不会复制两次。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

WM_PAINT之外的任何需要时,将所有绘图都绘制到屏幕外位图,然后将当前位图简单复制到HWND内的WM_PAINT