CDC m_bgDC;//定义一个DC
CBitmap m_bgBmp;//定义个位图对象
BITMAP m_bgBmpInfo;//定义一个位图信息结构体
CRect m_CliRect;//定义一个矩形对象,用来保存窗口客户区大小
CDC *pDc = GetDC();//定义一个DC指针,并指向屏幕DC
GetClientRect(&m_CliRect);//获取客户去大小,并保存到m_CliRect对象中
/*下面这行为读取位图文件,可以是相对路径,也可以是绝对路径,
如果是相对路径,调试时指相对于工程所在目录,直接执行EXE时,该位图就是相对于该EXE所在目录
*/
HBITMAP h_bgBmp = (HBITMAP)::LoadImage(NULL,"XXXXXX.bmp",IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
if (h_bgBmp == NULL)
{
MessageBox("加载位图失败");
return;
}
m_bgBmp.Attach(h_bgBmp);//将读取到的位图数据保存到位图对象中
m_bgBmp.GetBitmap(&m_bgBmpInfo);//获取该位图的大小
m_bgDC.CreateCompatibleDC(pDc);//创建一个兼容于屏幕DC的内存DC
m_bgDC.SelectObject(&m_bgBmp);//将该位图选入到刚刚创建的内存DC中。
/*下行函数为将内存DC中的内容贴到屏幕DC中,这里与上面不同的是,先择拉伸贴图,比如你的位图非常小,
而屏幕很大,用上面哪种bitblt函数只是将位图贴在屏幕的左上角,如果用以下函数,会将位图拉伸
铺满整个窗口*/
pDc->StretchBlt(0,0,m_CliRect.Width(),m_CliRect.Height(),&m_bgDC,0,0,m_bgBmpInfo.bmWidth,m_bgBmpInfo.bmHeight,SRCCOPY);
MFC-对话框背景图片的设置
最新推荐文章于 2024-05-22 12:58:32 发布