Wind32 GDI在内存中绘制彩色位图

Wind32 GDI在内存中绘制彩色位图

1创建兼容的内存DC

hPicture为创建的静态文本框控件句柄

复制代码
LRESULT OnPaint(HWND hWnd)
{

PAINTSTRUCT ps;
HDC hdc = ::BeginPaint(hWnd, &ps);

//1.创建静态文本框控件DC
HDC hPictureDc = GetDC(hPicture);

//2.创建和窗口DC兼容的内存DC,    
HDC hMenDc = CreateCompatibleDC(hdc);

//3.创建内存位图
//这要注意,如果创建和内存DC兼容的位图就只有黑白色,不会有彩色
//所以要创建实际对象DC.窗口DC或静态控件DC兼容的内存位图

HGDIOBJ hBitmap = CreateCompatibleBitmap(hdc, 500, 400);

//把位图选入内存DC中
HGDIOBJ hOldBitmap = SelectObject(hMenDc, hBitmap);

//给内存填充一个白色的背景色,如不填充背景色为黑色
RECT rect = { 0,0,500,400 };
FillRect(hMenDc, &rect,(HBRUSH) GetStockObject(WHITE_BRUSH));

//绘制你要绘制的位图
DrawBitmap(hMenDc, 500, 400);

//把内存DC中的位图复制到静态控件上显示出来
//我这是缩放复制,原样复制可以用BiBlt函数
StretchBlt(hPictureDc, 0, 0, 300, 200, hMenDc, 0, 0, 500, 400, SRCCOPY);

//释放GDI对象资源

SelectObject(hMenDc, hOldBitmap);
DeleteObject(hBitmap);
DeleteDC(hMenDc);
DeleteDC(hPictureDc);

EndPaint(hWnd, &ps);
return LRESULT();

}

复制代码
这是不填充背景色的效果

在这里插入图片描述

这是填充背景色为白色的效果

在这里插入图片描述

这是创建内存位图时选的内存DC兼容的效果

在这里插入图片描述

签名:GreenLeaf1976

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值