<分区>
所以我有以下代码:
void showBlankBitmap()
{
HDC hdcMem=CreateCompatibleDC(GetDC(printWind));
HBITMAP blankBimp=NULL;
//create a black bitmap
blankBimp=CreateCompatibleBitmap(hdcMem, 1920, 1080);
HBRUSH hBrushFill=CreateSolidBrush(RGB(0,0,0));
HBITMAP hBmpOld=(HBITMAP)SelectObject(hdcMem, blankBimp);
HBRUSH brushOld=(HBRUSH)SelectObject(hdcMem, hBrushFill);
Rectangle(hdcMem, 0,0,1920, 1080);
SelectObject(hdcMem, hBmpOld);
SelectObject(hdcMem, brushOld);
DeleteObject(hBrushFill);
DeleteDC(hdcMem);
SetBitmapDimensionEx(blankBimp, 1920, 1080, NULL);
HDC hDC=GetDC(printWind);
BitBlt(hDC, endOfLaptopW, 0, 1920, 1080, (HDC)blankBimp, 0, 0, NULL);
DeleteDC(hDC);
}
当我运行它时,它会创建一个覆盖窗口的黑色位图,这正是我想要的,但随后它就消失了。我不知道是什么删除了它。浏览程序时,我可以看到函数退出后窗口仍然是黑色的,但是由于它是在 WndProc(消息接收器)中调用的,所以之后我无法跟踪它,而且错误似乎发生在wndProc 或在它返回时正确。我也尝试过 SetBkColor。也不行。帮助将不胜感激。谢谢!