窗体贴图小结

两种贴图方法详解:

第一种原尺寸贴图(分为两种,一种是图片较大,则显示一部分;第二种,图片较小,则多余的地方不贴图)

CBitmap bitmap;

bitmap.LoadBitmap(IDB_BITMAP1);

 

CDC dcCompatible;

dcCompatible.CreateCompatibleDC(&dc);

      

dcCompatible.SelectObject(&bitmap);

CRect rect;

GetClientRect(&rect);

dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);

第二种拉伸贴图:

CBitmap bitmap;

bitmap.LoadBitmap(IDB_BITMAP2);

      

CDC dcCompatible;

dcCompatible.CreateCompatibleDC(&dc);

      

dcCompatible.SelectObject(&bitmap);

CRect rect;

GetClientRect(&rect);

      

BITMAP bmp;

bitmap.GetBitmap(&bmp);

      

      

dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

最简单的窗体贴图:

重载OnctrColor

if (pWnd == this)
{
return m_brBk;
}

 

.h头文件中定义public变量: CBrush m_brBk;//public中定义

OnInitDialog增加:

CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP2);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();

你可能感兴趣的:(窗体贴图小结)