【问题标题】:Can't draw a bitmap on a desktop using GDI无法使用 GDI 在桌面上绘制位图
【发布时间】:2022-08-17 18:29:04
【问题描述】:

我想制作只使用 GDI 在桌面上绘制图片的程序,但它不显示任何内容。我检查了是否有任何错误,它显示了错误代码 2。 这是我的代码

BITMAP bitMap;
HBITMAP hBitmap = reinterpret_cast<HBITMAP>(LoadImageA(0, Globals::bmpPath.c_str(), IMAGE_BITMAP, 1536,864, LR_LOADFROMFILE));

HDC whdc = GetDC(NULL);
HDC hdcMem = CreateCompatibleDC(whdc);

SelectObject(hdcMem,hBitmap);
GetObject(reinterpret_cast<HGDIOBJ>(hBitmap), sizeof(bitMap), &bitMap);

BitBlt(whdc, 0, 0, 1536,864, hdcMem, 0, 0, SRCCOPY);
std::this_thread::sleep_for(std::chrono::milliseconds(200));

顺便说一句,它在 while(true) 中。

    标签: c++ windows gdi


    【解决方案1】:

    在您的代码中,BitBlt 应该将位传输到hwdc,这实际上是GetDC(NULL)。你需要一个真正的 DC,来自像 myTargetDC=GetDC(hWnd) 这样的真实窗口

    【讨论】:

      猜你喜欢
      • 2012-11-09
      • 2010-11-16
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 2023-04-04
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多