设备环境中图片背景问题

zhengjiankang 2009-11-14 09:22:53
RECT winrect;
GetClientRect(hwnd, &winrect);
if(::IsRectEmpty(&winrect) == (BOOL)true)
return false;
int clientWidth = winrect.right - winrect.left;
int clientHeight = winrect.bottom - winrect.top;

HDC hBimtmapDC = CreateCompatibleDC(hdc);
if(!hBimtmapDC)
return false;
// SetBkColor(hBimtmapDC, RGB(0, 0, 255));
HBITMAP hWindowBitmap, hWindowOld;
hWindowBitmap = CreateCompatibleBitmap(hdc, clientWidth, clientHeight);
if(!hWindowBitmap)
return false;
hWindowOld = (HBITMAP)SelectObject(hBimtmapDC, hWindowBitmap);

上面是我的一段代码,创建一个用来存放客户区位图的内存设备环境,用来画客户区中的位图,然后显示,可是这样做的话我的位图背景色为黑色,我想给这个图片画个背景色,尝试过用画刷,可是没效果,想问下要用哪个函数或怎样来给这个位图加个背景色。
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengjiankang 2009-11-14
  • 打赏
  • 举报
回复
自己已解决问题,方法是用画刷给设备环境中的位图刷上背景,在上面的代码下面加如下代码:

HBRUSH hBrush, hBrushOld;
hBrush = CreateSolidBrush(RGB(0, 0, 255));
hBrushOld = (HBRUSH)SelectObject(hBimtmapDC, hBrush);
HRGN hWindowRgn = CreateRectRgn(0, 0, clientWidth, clientHeight);
PaintRgn(hBimtmapDC, hWindowRgn);
SelectObject(hBimtmapDC, hBrushOld);
DeleteObject(hBrush);
DeleteObject(hWindowRgn);

希望能学习到好的方法
zhengjiankang 2009-11-14
  • 打赏
  • 举报
回复
to:2-3楼,不是用MFC谢谢
to:4楼,试过了还是不行,显示在窗口中的图片还是没有背景色,把窗口上原来的背景全覆盖了,跟BitBlt一样的效果
cattycat 2009-11-14
  • 打赏
  • 举报
回复
用StretchBlt把图像拷贝到设备中。
mengde007 2009-11-14
  • 打赏
  • 举报
回复
CBrush Brush (RGB (128 , 0 , 128) );//你的颜色

CBrush* pOldBrush = pDC->SelectObject(&Brush);

CRect rcClip;
pDC->GetClipBox(&rcClip);

pDC-> PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY );

pDC->SelectObject (pOldBrush );
mengde007 2009-11-14
  • 打赏
  • 举报
回复
CDC memDC;
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
memDC.CreateCompatibleDC(pDC);
pOldbitmap = memDC.SelectObject(&bitmap);//调入内存

CDC *pDC;
pDC = GetDC();//得到其他的DC
BITMAP hbitmap;
bitmap.GetBitmap(&hbitmap);
//放到相应的DC上去
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,size.cx,size.cy,SRCCOPY);
memDC.SelectObject(pOldbitmap);
ReleaseDC(pDC);
zhengjiankang 2009-11-14
  • 打赏
  • 举报
回复
是不是还要用个函数选入设备环境呢
初学API对那些函数不熟悉
来个指点下咯

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧