gpt4 book ai didi

c++ - CreateCompatibleBitmap() 返回黑色 HBITMAP

转载 作者:行者123 更新时间:2023-11-30 01:22:22 28 4
gpt4 key购买 nike

您好 Stack Overflow 用户。看来我没有在以下代码中正确使用 CreateCompatibleBitmap():

#include <windows.h>
using namespace std;
int main() {HDC hdc=GetDC(HWND_DESKTOP); HDC MemDC=CreateCompatibleDC(hdc);
HBITMAP hBit=CreateCompatibleBitmap(hdc,1366,768);
SelectObject(MemDC,hBit);
BitBlt(hdc,0,0,1366,768,MemDC,0,0,SRCCOPY); //Screen turns black
DeleteObject(hBit);
ReleaseDC(HWND_DESKTOP,hdc);
ReleaseDC(NULL,MemDC);
DeleteDC(MemDC);
DeleteDC(hdc);
}

我以为 CreateCompatibleBitmap() 是要返回 Desktop DC 的 1366x768 部分,但在 BitBlt() 之后显示黑屏。我没有使用 CreateCompatibleBitmap,而是将一个位图文件加载到 hBit 中,一切都符合要求,所以我猜问题只出在 CreateCompatibleBitmap() 上。我是否正确使用此功能?有什么我应该做但我没有做的吗?

最佳答案

CreateCompatibleBitmap 为您创建了位图,但不应使用桌面的一部分或其他任何东西对其进行初始化。你在没有初始化的情况下将它 blit 到桌面,因此黑色并不意外。如果你想让它保存桌面图像,你需要反向 blit,从桌面 DC 到 DC,并选择创建的位图。

关于c++ - CreateCompatibleBitmap() 返回黑色 HBITMAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425695/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com