背景图可能来自一个bmp或者其它格式文件,也可能来自资源ID,分别怎么实现呢?谢谢

解决方案 »

  1.   

    http://72.14.203.104/search?&q=cache:RvlV-q_f8PQJ:upsblt.com/data/web5003/20050417/20050417__3860925.html+VC+%E5%AF%B9%E8%AF%9D%E6%A1%86+%E8%83%8C%E6%99%AF%E5%9B%BE%E7%89%87&hl=zh-CN
      

  2.   

    http://upsblt.com/data/web5003/20050417/20050417__3860925.html从文件和从资源读入位图差别不大,分别实现一下,拿到CBitmap指针或者HBITMAP以后处理都是一样的。
      

  3.   

    如此即可:
    BOOL CMyDialog::OnEraseBkgnd(CDC* pDC) 
    {
    HBITMAP hBmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),"C:\\background.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    HDC hMemDC = CreateCompatibleDC(pDC->m_hDC);
    CBitmap bmp();
    bmp.Attach(hBmp);
    BITMAP bm;
    bmp.GetBitmap(&bm);
    SelectObject(hMemDC,hBmp);
    CRect rc;
    GetClientRect(rc);
    StretchBlt(pDC->m_hDC,0,0,rc.Width(),rc.Height(),hMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
    bmp.DeleteObject();
    return TRUE;
    }
      

  4.   

    http://www.codeguru.com/cpp/w-d/dislog/bitmapsimages/article.php/c5075/
    http://www.codeguru.com/cpp/w-d/dislog/bitmapsimages/article.php/c5055/
    http://www.codeguru.com/cpp/w-d/dislog/bitmapsimages/article.php/c4977/
    http://www.codeguru.com/cpp/w-d/dislog/bitmapsimages/article.php/c1877/
      

  5.   

    补充一下,在onsize和初始化时,也要copy图才行。恩
      

  6.   

    BOOL CMyDialog::OnEraseBkgnd(CDC* pDC) 
    {
    HBITMAP hBmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),"C:\\background.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    HDC hMemDC = CreateCompatibleDC(pDC->m_hDC);
    CBitmap bmp();
    bmp.Attach(hBmp);
    BITMAP bm;
    bmp.GetBitmap(&bm);
    SelectObject(hMemDC,hBmp);
    CRect rc;
    GetClientRect(rc);
    StretchBlt(pDC->m_hDC,0,0,rc.Width(),rc.Height(),hMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
    bmp.DeleteObject();
    return TRUE;
    }
    ____________________--
    是滴,当时就是这样。12句代码没有一句废话,鹦鹉兄果然不凡。