VC 背景填充位图的几种方法

原创 2007年09月30日 15:34:00
IDB_BG 是位图资源的ID

 

方法一
OnEraseBkgnd(CDC* pDC) 
{
 // 设置画刷为希望的背景
 CDC backBmp;               
 backBmp.CreateCompatibleDC(pDC);
 CBitmap bitmap;
 bitmap.LoadBitmap(IDB_BG);
 CBrush m_brushBackground;
 m_brushBackground.CreatePatternBrush(&bitmap);    ///创建位图画刷
 CBrush* pOldMemDCBrush=pDC->SelectObject(&m_brushBackground); 
 pDC->PatBlt(0,0,m_ScrollRect.Width(),m_ScrollRect.Height(),PATCOPY);
 pDC->SelectObject(pOldMemDCBrush);
 return TRUE;
}


方法二
OnEraseBkgnd(CDC* pDC) 
{
 CBitmap m_pMap;
 m_pMap.LoadBitmap(IDB_BG);
 CRect rect;
 GetClientRect(&rect); 
 BITMAP bm;
 CDC dcMem;
 m_pMap.GetObject(sizeof(BITMAP),&bm);
 dcMem.CreateCompatibleDC(pDC); 
 CBitmap* pOldBitmap = dcMem.SelectObject(&m_pMap);
 for (register int nX=0;nX<rect.right-rect.left;nX+=bm.bmWidth)
  for(int nY=0;nY<rect.bottom-rect.top;nY+=bm.bmHeight)
 pDC->BitBlt(nX,nY,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
 dcMem.SelectObject(pOldBitmap); 
 return TRUE;
}

方法三
OnEraseBkgnd(CDC* pDC) 
{
 CBitmap bmp;
 bmp.LoadBitmap(IDB_BG); ///加载位图
 CBrush m_brushBackground;
 m_brushBackground.CreatePatternBrush(&bmp);    ///创建位图画刷
 CRect rect;
 GetClientRect(&rect); 
 pDC->FillRect(rect,&m_brushBackground); //用背景画填充区域
 return TRUE;
}

 

VC 背景填充位图的几种方法

VC 背景填充位图的几种方法   IDB_BG 是位图资源的ID 方法一 [c-sharp] view plaincopy OnEraseBkgnd(CDC* p...
  • yangmeng900816
  • yangmeng900816
  • 2014年10月09日 10:48
  • 454

VC++中用位图平铺填充整个Dlg的背景

VC++中用位图平铺填充整个Dlg的背景 document.title="VC++中用位图平铺填充整个Dlg的背景 - [原创] - "+document.title作者:razorwang***转载...
  • goingup
  • goingup
  • 2006年02月25日 13:04
  • 3972

基于对话框的MFC程序加载位图为背景图案

from:http://rwsk.snnu.edu.cn/?uid-156-action-viewspace-itemid-240先载入一张图片,ID为IDB_BITMAP2  TestDlg.h中C...
  • wangxipu
  • wangxipu
  • 2008年01月08日 16:49
  • 7195

VC 如何对不规则图形填充颜色

CRect rectCheck = rectBox; rectCheck.left += 3; rectCheck.top += 3; penLed.DeleteObject...
  • testcs_dn
  • testcs_dn
  • 2012年06月18日 13:13
  • 5007

VC控件中静态和动态动态加载位图的方法。

  • huaerge
  • huaerge
  • 2009年12月17日 14:04
  • 5469

在VC++6.0中给对话框设置背景色或者背景图片

/*********************************************************** *说明: 在VC++6.0中给对话框设置背景色或者背景图片 *备注:测试代码的...
  • djd1234567
  • djd1234567
  • 2015年08月12日 22:32
  • 1643

Flash笔记之用位图填充圆

package{ import flash.display.*; import flash.display.Loader; import flash.display.Sprite; import fl...
  • alengan
  • alengan
  • 2011年06月07日 14:34
  • 1078

MFC 画刷 位图

1. 在客户区显示六个椭圆,并用不同的颜色填充 void CPaintView::OnLButtonDown(UINT nFlags, CPoint point)  { CClientD...
  • ch_jinyi
  • ch_jinyi
  • 2012年04月21日 13:01
  • 2681

MFC在对话框中添加背景图片导入位图出错的解决方法

一个问题折腾了一下午,总算找到解决办法啦! 在MFC对话框中导入下载的.BMP格式的图片时总是出错,原因在于: vc不能导入jpg文件,应该把jpg文件转化成bmp文件,但是这里所说的转换不是...
  • sinat_20265495
  • sinat_20265495
  • 2016年02月29日 16:39
  • 1465

VC打开并缩放显示位图(.BMP)文件的方法

VC打开并缩放显示位图(.BMP)文件的方法 最近一个项目需要进行位图操作,网上找了一大堆资料,但发现都是以前VC6.0版本的抄来抄去,而且大多数使用了复杂的位图结构。所以自己通过查阅MSD...
  • lxw907304340
  • lxw907304340
  • 2015年05月05日 14:19
  • 1388
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC 背景填充位图的几种方法
举报原因:
原因补充:

(最多只允许输入30个字)