VC 雙緩衝繪圖

來源:互聯網
上載者:User

原文地址::http://www.cppblog.com/erran/archive/2006/11/25/15650.html

 

 

 

相關網帖

1.VC 雙緩衝技術 ----http://blog.csdn.net/wooden_men/article/details/5662305

VC 雙緩衝繪圖

 

BOOL CGraphDlg::OnDraw(CDC* pDC)

{

       CRect rc;

       GetClientRect(&rc); 

      

       CDC  MemDC;

      

       CBitmap  MemBitmap;  

      

       MemDC.CreateCompatibleDC(NULL);      

      

       MemBitmap.CreateCompatibleBitmap(pDC, rc.Size().cx,rc.Size().cy);

      

       CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);      

      

       MemDC.BitBlt(0,0,rc.width, rc.height, pDC,0,0,SRCCOPY);

      

       m_pGraph->SetGraphDC(&MemDC);

       m_pGraph->DoGraphShowEvent();  

             

       pDC->BitBlt(0,0, rc.Size().cx,rc.Size().cy,&MemDC,0,0,SRCCOPY);  

 

       MemDC.SelectObject(pOldBit);

       MemBitmap.DeleteObject();

       MemDC.DeleteDC();

}

 

Delphi 雙緩衝繪圖:

procedure TBkCoordi.Draw(Canvas : TCanvas);

var

    _bmp : TBitmap;

    _width, _height : integer;

    _top, _left : integer;

begin

    _width := Round(m_width);

    _height := Round(m_height);

    _left := Round(m_topleft.x);

    _top := Round(m_topleft.y);

 

    _bmp := Tbitmap.Create;

    _bmp.Handle := CreateCompatibleDC(Canvas.Handle);

    _bmp.Width :=  _width;

    _bmp.Height :=  _height;

 

    BitBlt(_bmp.Canvas.Handle,0,0,_width,_height, Canvas.Handle,_left,_top,SRCCOPY);

                 

    if m_showcross then m_cross.Draw(_bmp.Canvas);

    if @OnDrawing <> nil then OnDrawing(_bmp.Canvas);

 

    BitBlt(Canvas.Handle,_left,_top,_width,_height, _bmp.Canvas.Handle,0,0,SRCCOPY);

 

    _bmp.Free;

end;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.