MFC-对话框背景图片的设置

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);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值