我想知道在使用HDC时,当我选择回原始位图时,我可以再次使用它吗?像...
HBITMAP hbmOld;
// FIRST
hbmOld = (HBITMAP)SelectObject(hdcMem, bitmap.hbmItemOverlay);
Rectangle(hdcMem, 0, 0, MAP_WIDTH*BLOCK_SIZE, MAP_HEIGHT*BLOCK_SIZE);
SelectObject(hdcMem, hbmOld);
// SECOND
stockBrush = GetStockBrush(BLACK_BRUSH);
hbmOld = (HBITMAP)SelectObject(hdcMem2, bitmap.hbmMap);
Rectangle(hdcMem2, 0, 0, bitmap.bmMap.bmWidth, bitmap.bmMap.bmHeight);
SelectObject(hdcMem2, hbmOld);
我想知道这是否有效。编译很好并且有效,但我想知道这样做是不是很糟糕的编程习惯呢?
答案 0 :(得分:2)
在我看来,这似乎完全没问题。
您还可以100%确定地测试内存泄漏。
我个人使用GDIView来执行此操作。关键是句柄数量在最后一列是恒定的。如果您在使用它时需要帮助,请发表评论。如果其他人可以建议更好或更容易使用替代方案,我会欢迎。
最好的问候。