#include <stdio.h>
#include <Windows.h>
int main(void)
{
    BITMAPINFOHEADER infoheader;
    HBITMAP hbmp;
    HDC hdc, hdcMem;
    PBYTE pBits; // 用于接收系统为位图分配的内存地址
    hdc = GetDC(NULL);
    hdcMem = CreateCompatibleDC(hdc);
    ZeroMemory(&infoheader, sizeof(infoheader));
    infoheader.biSize = sizeof(infoheader);
    infoheader.biBitCount = 24;
    infoheader.biPlanes = 1;
    infoheader.biWidth = 100;
    infoheader.biHeight = 50;
    hbmp = CreateDIBSection(hdc, (BITMAPINFO *)&infoheader, DIB_RGB_COLORS, (LPVOID *)&pBits, NULL, (DWORD)NULL);
    SelectObject(hdcMem, hbmp); // 可将创建的位图选入内存DC
    memset(pBits, 0xee, 300);
    memset(pBits + 300, 0x99, 300);
    SelectObject(hdcMem, GetStockObject(WHITE_BRUSH));
    Rectangle(hdcMem, 10, 10, 40, 20);
    BitBlt(hdc, 10, 10, infoheader.biWidth, infoheader.biHeight, hdcMem, 0, 0, SRCCOPY);
    ReleaseDC(NULL, hdc);
    DeleteDC(hdcMem);
    DeleteObject(hbmp);
    return 0;
}
      