如题,通过网络传过来的图片,不等整个文件接受完就显示,接受多少显示多少。如何实现,就像网速慢时上网看到图片像百叶窗向下拉一样。

解决方案 »

  1.   

    是jpg格式,各位高手求救啊。不是bitmap
      

  2.   

    看我的代码
    void CPicView::OnAccept() 
    {
    // TODO: Add your command handler code here
    CRect   rcImage(0,0,900,600);   
        LImage = (LPDWORD)malloc(rcImage.Width()*rcImage.Height()*sizeof(DWORD));
        LChangedImage = LImage;  
        bitmap.CreateBitmap(rcImage.Width(),rcImage.Height(),1,32,NULL);   
         
        for(int j=0;j<rcImage.Height();j++)   
    {   
          BYTE  r,g,b,a;   
          r = rand()%255;   
          g = rand()%255;   
          b = 255-rand()%255;   
          a = 0;   
          DWORD  dwColor = (DWORD)MAKELONG( MAKEWORD(b,g),MAKEWORD(r,a));   
          for(int i=0;i<rcImage.Width();i++)   
          LChangedImage[i] = dwColor;   
          LChangedImage+= rcImage.Width();   
    }   
         bitmap.SetBitmapBits(rcImage.Width()*rcImage.Height()*4,LImage);  
     CPicView m_view;
         Invalidate();
    }
    void CPicView::OnDraw(CDC* pDC)
    {  
        // TODO: add draw code for native data here
    CPicDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
        CDC   dcMemory;  
        dcMemory.CreateCompatibleDC(pDC); 
        dcMemory.SelectObject(bitmap);       CRect rect;
        GetClientRect(&rect);    pDC->BitBlt((rect.Width()-rcImage.Width())/2,0,rcImage.Width(), rcImage.Height(),&dcMemory,     
        0,0, SRCCOPY);    }
    怎么刷新不了,显示空白。
      

  3.   

    问题都解决了,可刷新闪烁太厉害。用双缓存也不行,DIB是不是比DDB刷新好点。