请问各位高手,如何在MFC的一个dialog中加入背景图片?不是把图片放到工程中来的那种,而是本地硬盘上有一张图片,我通过一些方法获取了该图片的路径和文件名,如何把它作为背景图加载到我当前的dialog中?

解决方案 »

  1.   

    楼上!或者  IPicture 接口  接口方式可以使用多种图片
      

  2.   

    如果你想显示多一点格式的图片,可以考虑用GDI+
    http://hi.baidu.com/wither/blog/item/111b5ffbdf65de1c6c22eb7b.html
      

  3.   

    重载WM_ERASEBKGND消息HBITMAP hbmp=LoadImage(NULL,_T("c:/123.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    HDC hdc=GetDC(this->m_hWnd);
    BITMAP bmp;
    GetObject(hbmp,sizeof bmp,&bmp);
    ::BitBlt(hdc,0,0,bmp.bmWidth,bmp.bmHeight,hbmp,0,0,SRCCOPY);
      

  4.   

    首先创建位图
    CBitmap bitmap;
    bitmap.LoadBitmap(位图资源ID);
    创建兼容的DC(设备环境上下文)
    创建兼容DC前先得到当前对话框的DC(设备环境上下文)
    CDC *dc=GetDC();
    CDC CompatibleDC;
    CompatibleDC.CreateCompatibleDC(dc);
    把位图放到兼容的DC(设备环境上下文)
    ComptibleDC.SelectObject(&bitmap);然后再进行贴图
    dc->bitBlt( ...........);很简单吧
      

  5.   

    是这个意思么
    http://blog.csdn.net/xianglitian/archive/2010/11/20/6023656.aspx
      

  6.   


    BOOL CTDlg::OnEraseBkgnd(CDC* pDC) 
    {
    // TODO: Add your message handler code here and/or call default
    CDialog::OnEraseBkgnd(pDC);

    HBITMAP hbmp=(HBITMAP)LoadImage(AfxGetApp()>m_hInstance,_T("c:/000.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    CRect rc;
    GetUpdateRect(&rc);
    CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    memDC.SelectObject(hbmp);
       
    pDC->BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,rc.left,rc.top,SRCCOPY);
    memDC.DeleteDC();
    DeleteObject(hbmp);
    return true;
    }
    VC6 MFC