方法一:
1、声明成员变量CBrush m_brush
2、在InitDialog中添加代码:
CBitmap bmp
bmp.LoadBitmap(IDB_BITMAP1) //这个IDB_BITMAP1要自己添加
m_brush.CreatePatternBrush(&bmp)
3、重载对话框的OnCtlColor,改最后的返回值:
return (HBRUSH)m_brush
方法二:
把下面这段代码加进OnPaint()里就行了
CPaintDC dc(this)
CBitmap bitmap
bitmap.LoadBitmap(IDB_BITMAP1) //这个IDB_BITMAP1要自己添加
CBrush brush
brush.CreatePatternBrush(&bitmap)
CBrush* pOldBrush = dc.SelectObject(&brush)
dc.Rectangle(0,0,200,200) // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush)
方法三:使用StretchBlt()函数,具有图像自适应窗体功能
CPaintDC dc(this)
CBitmap m_bmpBK
m_bmpBK.LoadBitmap(IDB_BITMAP1)
CRect rect
GetClientRect(&rect)//获得目标尺寸,即窗口客户区的坐标
BITMAP bitMap//位图结构体
m_bmpBK.GetBitmap(&bitMap)//获得原图片尺寸
CDC dcMem //目标DC
dcMem.CreateCompatibleDC(&dc)//创建与dc兼容的内存DC
dcMem.SelectObject(&m_bmpBK)//将位图对象m_bmpBK选入内存DC
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY)
先创建图片方法一创建图片 CBitmap::LoadBitmap(资源名称)
方法二创建图片 CBitmap::LoadBitmap(资源ID)
创画刷 CBrush::CreatePatternBrush( 创建的CBitmap)
重载这个函数
HBRUSH CDailog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CSizeDlg::OnCtlColor(pDC, pWnd, nCtlColor)
// TODO: Change any attributes of the DC here
//功能: 设置静态窗口背景为空
HBRUSH hbr = NULL
switch(nCtlColor)
{
case CTLCOLOR_STATIC: //静态框
break
case CTLCOLOR_DLG: //对话框
if(NULL == m_clrBkBrush.m_hObject)
hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor)
else
hbr = m_clrBkBrush
break
default:
hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor)
break
}
// TODO: Return a different brush if the default is not desired
return hbr
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)