国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
什么是雙緩存畫圖機制???VC繪圖中的 - VC++論壇 - C++論壇 - 編程論壇
雙緩沖的原理可以這樣形象的理解:把電腦屏幕看作一塊黑板。首先我們在內(nèi)存環(huán)境中建立一個“虛擬“的黑板,然后在這塊黑板上繪制復雜的圖形,等圖形全部繪制完畢的時候,再一次性的把內(nèi)存中繪制好的圖形“拷貝”到另一塊黑板(屏幕)上。采取這種方法可以提高繪圖速度,極大的改善繪圖效果。
  例如在OnDraw()函數(shù)中可以如下所述實現(xiàn)雙緩沖,其主要步驟分為四步:

  CPen Pen;Pen.CreatePen(PS_INSIDEFRAME,1,RGB(225,225,0));

  CBrush Brush;

  Brush.CreateSolidBrush(RGB(225,225,0));

  CDC dcMem;CBitmap bm;

  CRect rc;GetClientRect(&rc);

  // Step 1:為屏幕DC創(chuàng)建兼容的內(nèi)存

  DC :CreateCompatibleDC()

  dcMem.CreateCompatibleDC(pDC);

  // Step 2:創(chuàng)建位圖:

  CreateCompatibleBitmap()

  bm.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());

  // Step 3:把位圖選入設備環(huán)境:SelectObject(),可以理解為選擇畫布dcMem.SelectObject(&bm);

  dcMem.SelectObject(Pen);

  dcMem.SelectObject(Brush);

  dcMem.Ellipse(0,0,50,50);//畫橢圓

  // Step 4:把繪制好的圖形“拷貝“到屏幕上:BitBlt()pDC->BitBlt(0,0,rc.Width(),

  rc.Height(),&dcMem,0,0,SRCCOPY);

  dcMem.DeleteDC();

  bm.DeleteObject();

  這樣便實現(xiàn)了雙緩沖,通過這個方法可以防止在VC中畫圖時出現(xiàn)屏幕閃爍的情況。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VC中用GDI函數(shù)實規(guī)高速平滑動畫
VC的內(nèi)存繪圖防止屏幕閃爍技術的實現(xiàn)
一個類似VS2010中的CMemDC類,VC6中用
自繪按鈕中注意的問題(DrawItem)
在特定位置刷一副位圖
一維碼
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服