C++ 如何使用C+中的GDI从内存中绘制RGB像素数据+;

C++ 如何使用C+中的GDI从内存中绘制RGB像素数据+;,c++,windows,gdi,C++,Windows,Gdi,我有一个指向RGB数据(640x480x3字节)的指针,我想使用BitBlt或其他同样快速的方法将其绘制到窗口中。如何将RGB数据转换为可用于BitBlt的数据(例如) 以下是我迄今为止所做的尝试(没有成功) 谢谢 更新:这是工作代码 HDC dc = GetDC(hwnd); BITMAPINFO info; ZeroMemory(&info, sizeof(BITMAPINFO)); info.bmiHeader.biBitCount = 24;

我有一个指向RGB数据(640x480x3字节)的指针,我想使用BitBlt或其他同样快速的方法将其绘制到窗口中。如何将RGB数据转换为可用于BitBlt的数据(例如)

以下是我迄今为止所做的尝试(没有成功)

谢谢

更新:这是工作代码

    HDC dc = GetDC(hwnd);

    BITMAPINFO info;
    ZeroMemory(&info, sizeof(BITMAPINFO));
    info.bmiHeader.biBitCount = 24;
    info.bmiHeader.biWidth = w;
    info.bmiHeader.biHeight = h;
    info.bmiHeader.biPlanes = 1;
    info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    info.bmiHeader.biSizeImage = size;
    info.bmiHeader.biCompression = BI_RGB;

    StretchDIBits(dc, 0, 0, w, h, 0, 0, w, h, buf, &info, DIB_RGB_COLORS, SRCCOPY);
    ReleaseDC(hwnd, dc);
您可以使用API函数将字节(即所谓的DIB设备独立位图)渲染到HDC

然而,检查一下,您可以使用API函数将您的字节(即所谓的DIB设备独立位图)呈现给HDC

然而,检查一下,您可以使用API函数将您的字节(即所谓的DIB设备独立位图)呈现给HDC

然而,检查一下,您可以使用API函数将您的字节(即所谓的DIB设备独立位图)呈现给HDC

然而检查

    HDC dc = GetDC(hwnd);

    BITMAPINFO info;
    ZeroMemory(&info, sizeof(BITMAPINFO));
    info.bmiHeader.biBitCount = 24;
    info.bmiHeader.biWidth = w;
    info.bmiHeader.biHeight = h;
    info.bmiHeader.biPlanes = 1;
    info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    info.bmiHeader.biSizeImage = size;
    info.bmiHeader.biCompression = BI_RGB;

    StretchDIBits(dc, 0, 0, w, h, 0, 0, w, h, buf, &info, DIB_RGB_COLORS, SRCCOPY);
    ReleaseDC(hwnd, dc);