在内存中显示位图

本文介绍如何在内存中创建位图并进行绘图操作,包括使用CreateCompatibleDC和CreateCompatibleBitmap函数创建与显示设备相匹配的内存位图,通过SelectObject函数绑定位图句柄,利用FillRect和Rectangle函数绘制矩形填充背景,最后通过BitBlt函数将内存位图显示到窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在内存位图中绘图,并显示。代码如下:
    HDC hdc=GetDC(hwnd);
    RECT rect;  
    GetClientRect(hwnd,&rect);  
    int cxClient = rect.right;
    int cyClient = rect.bottom;

    //为显示设备创建一块相应的内存
    HDC hdcmem = CreateCompatibleDC(NULL);

    //创建位图
    HBITMAP hBitmap = CreateCompatibleBitmap(hdc,cxClient,cyClient);

    //将内存句柄和位图句柄绑定
    SelectObject(hdcmem,hBitmap);

    //画图
    FillRect(hdcmem,&rect,NULL);
    Rectangle(hdcmem,20,20,100,100);  
    //显示到窗口上
    BitBlt(hdc,0,0,cxClient,cyClient,hdcmem,0,0,SRCCOPY);

    DeleteDC(hdcmem);
    DeleteObject(hBitmap);
    ReleaseDC(hwnd,hdc);
要创建多个内存位图,可以多次调用CreateCompatibleDC和CreateCompatibleBitmap函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值