selectobject()要得是一个CBitmap*不是hbitmap

解决方案 »

  1.   

    hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(), (LPCTSTR) strBmpFile, 
    IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    hOldBitmap = (HBITMAP) ::SelectObject(cMemDC.m_hDC, hBitmap);
    pDC->BitBlt(rcTab.left, rcTab.top,
    rcTab.Width(), rcTab.Height(), &cMemDC,
    0, 0, SRCCOPY);
    ::SelectObject(cMemDC.m_hDC, hOldBitmap);
    ::DeleteObject(hBitmap);
      

  2.   

    // just a demo, you can reference it   HBITMAP bitmap;
       /////读取位图文件SAMPLE.BMP
       bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),"SAMPLE.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
       ASSERT(bitmap);
       HBITMAP OldBitmap;
       CDC MemDC;CRect rect;
       MemDC.CreateCompatibleDC(&dc);
       GetClientRect(rect);
       OldBitmap=(HBITMAP)MemDC.SelectObject(bitmap);
       ///显示它
       dc.BitBlt(20,20,rect.Width()-20,rect.Height()-20,&MemDC,0,0,SRCCOPY);
       MemDC.SelectObject(OldBitmap);
      

  3.   

    hBmp.GetBitmap(&bm);//这里应该用一个CBitmap对象来引导
    可以用CBitmap m_bitmap.Attach(hBmp);
    m_bitmap.GetBitmap(&bm);然后CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap);
      

  4.   

    HANDLE to CGDIObject
    pObject = CGDIObject::FromHandle( handle );CGDIObject to HANDLE 
    handle = pObject->GetSafeHandle( );