具体的讲:
bmp文件路径:d:\abc.bmp;
CBitmap m_mybitmap;m_mybitmap.LoadBitmap()如何将"d:\abc.bmp"动态加载,而不是设计时将"d:\abc.bmp"作为资源;

解决方案 »

  1.   

    自己参考吧
    1)
        CGraphDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);        
        HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, _T          ("c:\\backgrnd.bmp"), IMAGE_BITMAP,
                        0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
        m_bitmaptest->Attach(hBitmap);   
        if(hBitmap==NULL)
            MessageBox("error");
        BITMAP bm1;
        m_bitmaptest->GetObject(sizeof(BITMAP),&bm1);
        CDC dcImage;
        if (!dcImage.CreateCompatibleDC(pDC))
            return ;
        CBitmap* pOldBitmap = dcImage.SelectObject(m_bitmaptest);  
        CRect rect_t1;    
        GetClientRect(&rect_t1);    
    for(int wide_x=0;wide_x<rect_t1.right;wide_x+=bm1.bmWidth) 
       for(int wide_y=0;wide_y<rect_t1.bottom;wide_y+=bm1.bmHeight)
        {
            pDC->BitBlt( wide_x, wide_y, bm1.bmWidth, bm1.bmHeight, &dcImage,    0, 0, SRCCOPY );
        }
        dcImage.SelectObject(pOldBitmap);
        DeleteObject(m_bitmaptest->Detach()); 
    2)
    设lpszName 是你要加载的位图路径,pDC是显示DC
    则:
        const char* lpszName = "c:\\test.bmp";
        HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL,
                                                lpszName,
                                                IMAGE_BITMAP,
                                                 0,
                                                 0,
                                                  LR_LOADFROMFILE);
        CBitmap bmp;
        bmp.Attach(hBitmap);
        BITMAP bm;
        bmp.GetBitmap(&bm);
        CDC memDC;
        memDC.CreateCompatibleDC(pDC);
        CBitmap *pOldBmp = memDC.SelectObject(&bmp);
        pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);    memDC.SelectObject(pOldBmp);
    ---------------------------------------
    void CTestListDlg::OnPaint() 
    {
        CPaintDC dc(this); // device context for painting
        
        // TODO: Add your message handler code here
        HBITMAP hBitmap;    hBitmap=(HBITMAP)LoadImage(
          ::AfxGetInstanceHandle(),"res\\background.bmp",
          IMAGE_BITMAP,0,0,
          LR_LOADFROMFILE|LR_CREATEDIBSECTION);
        ASSERT( hBitmap);
        HBITMAP hOldBitmap;
        
        CDC MemDC;
       CRect rect;
       CDC *pDC=this->GetDC();
       MemDC.CreateCompatibleDC(pDC);
       GetClientRect(rect);
       hOldBitmap=(HBITMAP)MemDC.SelectObject(hBitmap);
       pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
       MemDC.SelectObject(hOldBitmap);    // Do not call CDialog::OnPaint() for painting messages
    }
      

  2.   

    CBitmap::LoadBitmap()不能载入硬盘上的文件。
    用LoadImage()就可以了!用法楼上的就行了!