BITMAP   bm;   
  CDC   dcMem;   
  dcMem.CreateCompatibleDC(pDC);   
  m_pbmp   =   new   CBitmap();   
  m_pbmp->LoadBitmap(IDB_BITMAP1);   
    
  CBitmap   *pBmpOld=(CBitmap   *)dcMem.SelectObject(m_pbmp);   
  m_pbmp->GetObject(sizeof(bm),(LPVOID)&bm);   
  CRect   rcClient;   
  GetClientRect(rcClient);   
    
  pDC->BitBlt(0,0,bm.bmWidth,   
  bm.bmHeight,   
  &dcMem,   
  0,0,      
  SRCCOPY);   
    
  dcMem.SelectObject(pBmpOld); 
  return TRUE;
运行后踱出来的对话框部分怎么变透明了?

解决方案 »

  1.   

    是在OnEraseBkgnd()里面吗?多出来的部分没有绘制,当然就透明了。可以先调用基类的OnEraseBkgnd
      

  2.   

    pDC->BitBlt(0,0,bm.bmWidth,   
      bm.bmHeight,   
      &dcMem,   
      0,0,      
      SRCCOPY);   
    不改变图片大小,要动态改变图片大小,用StretchBlt函数,楼主可以用
    pDC->StretchBlt(0,0,rcClient.Width(),   
      rcClient.Height(),   
      &dcMem,   
      0,0,
      bm.bmWidth,   
      bm.bmHeight,
      SRCCOPY);  
    试试!!!