在我的程序(游戏)中,我进行了GetDC()调用并将DC保存为全局.我想在程序结束时我只能发布ReleaseDC().
目前我遇到麻烦,因为有些事情没有正确.我使用具有各种功能的DC和计时器.
这可能导致这个问题吗?
(程序的大小太大,无法改变一切,看它是否会帮助......)
编辑:我唯一一个全球保存(并在窗口创建后设置)是
HDC hDC = GetDC(hWnd)
Run Code Online (Sandbox Code Playgroud)
然后,每当我需要做某事时:
HDC hdcMem = CreateCompatibleDC(hDC);
// everything
DeleteDC(hdcMem)
Run Code Online (Sandbox Code Playgroud)
然后在程序结束时:
ReleaseDC(hWnd, hDC);
Run Code Online (Sandbox Code Playgroud)
是否有可能在代码的各个地方进行所有绘图和对象选择导致这些"半罕见"问题?
另外,忘记注意,任何地方都没有GDI泄漏.
您不应该长时间存储HDC.
一般而言,您不需要这样做.当你需要画一些你打电话的东西InvalidateRect(HWND, rc)时,OS可能会在你画画的地方发送WM_PAINT.
简而言之:避免在WM_PAINT之外绘图.
| 归档时间: |
|
| 查看次数: |
3112 次 |
| 最近记录: |