Win32 C++ "Old Bitmap"可以重复使用吗?

Win32 C++ Can "Old Bitmap" Be Reused?

本文关键字:C++ Old Bitmap Win32      更新时间:2023-10-16

我想知道当使用HDCs时,当我选择回原始位图时,我可以再次使用它吗?像…

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);

我想知道这是否有效。它编译得很好,但我想知道这是坏的编程实践吗?

我觉得这很好。

您也可以测试内存泄漏只是为了100%确定。

我个人使用GDIView来做到这一点。关键字是使最后一列中的句柄数保持不变。如果你需要帮助,请留下评论。如果其他人能提出更好或更容易使用的替代方案,我将非常欢迎。

问好。