亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

基于WTL 雙緩沖(double buffer)繪圖的分析詳解

2020-01-26 16:11:45
字體:
來源:轉載
供稿:網友
WTL中有兩個Mix-in類: CDoubleBufferImplCDoubleBufferWindowImpl,用于創建雙緩沖繪圖窗口,用法非常簡單。
下面創建了一個普通的WTL窗口類,在窗口的客戶區中有大量的繪圖工作,使用CDoubleBufferImpl類來消除繪圖時的閃爍現象:
復制代碼 代碼如下:

const COLORREF WHITE_COLOR = RGB(255,255,255);
const COLORREF BLUE_COLOR = RGB(0,0,255);
class CMainWindow :
 public CWindowImpl<CMainWindow,CWindow,CSimpleWinTraits>,
 public CDoubleBufferImpl<CMainWindow>
{
public:
 typedef CMainWindow _thisClass;
 typedef CDoubleBufferImpl<_thisClass> _baseDblBufImpl;
 BEGIN_MSG_MAP(CMainWindow)
  MSG_WM_CREATE(OnCreate)
  MSG_WM_DESTROY(OnDestroy)
  CHAIN_MSG_MAP(_baseDblBufImpl)
 END_MSG_MAP()
 int OnCreate(LPCREATESTRUCT lpCreateStruct)
 {
  m_RectPen.CreatePen(PS_SOLID,1,BLUE_COLOR);
  return 0;
 }
 void OnDestroy()
 {
  PostQuitMessage(0);
 }

 void OnPaint(CDCHandle)
 {
  CPaintDC dc(m_hWnd);
  DoPaint(dc.m_hDC);
 }
 void DoPaint(CDCHandle dc)
 {
  CRect rc;
  GetClientRect(&rc);
  dc.FillRect(&rc,WHITE_COLOR);
  HPEN hOldPen = dc.SelectPen(m_RectPen);
  const int width = 5;
  int x = 0;
  int count = rc.Width()/width;
  int height = 0;
  for (int i=0; i<count; i++)
  {
   height = (int)((double)rand()*rc.Height())/RAND_MAX;
   dc.Rectangle(x,rc.Height(),x+width,rc.Height()-height);
   x += width;
  }
  dc.SelectPen(hOldPen);
 }
 /*
 void DoPaint(CDCHandle dc)
 {
  CRect rc;
  GetClientRect(&rc);
  int width = rc.Width(), height = rc.Height();
  //use GDI+ to draw in the client area
  Graphics g(dc.m_hDC);
  SolidBrush whiteBrush(Color(255,255,255));
  g.FillRectangle(&whiteBrush,0,0,width,height);
  Pen bluePen(Color(0,0,255));
  const int dx = 5;
  int count = width/dx;
  int x = 0, y = 0, h = 0;
  for (int i=0;i<count;i++)
  {
   h = ((double)rand()*height)/RAND_MAX;
   g.DrawRectangle(&bluePen,x,y,dx,h);
   x += dx;
  }
 }
 */
private:
 CPen m_RectPen;
};

值得一提的是,Windows Vista操作系統增加了對Double buffered paint的內建支持,這里有一篇文章介紹如何在Win32程序中使用這些API:
Using Windows Vista Built-In Double Buffering
在WTL中使用Vista提供的這一功能非常容易,最新的WTL庫中提供了CBufferedPaintImpl和CBufferedPaintWindowImpl兩個類,這兩個類的用法和前面提到的兩個WTL自帶的雙緩沖類幾乎一樣。區別僅僅是所重載的DoPaint()函數的參數稍有不同。
對于CBufferedPaintImpl類,所需重載的DoPaint()函數的樣子如下所示:
復制代碼 代碼如下:

void DoPaint(CDCHandle dc, RECT& rect)
{
 CRect rc(rect);
 dc.FillSolidRect(&rc,WHITE_COLOR);
 HPEN hOldPen = dc.SelectPen(m_RectPen);
 const int width = 5;
 int x = 0;
 int count = rc.Width()/width;
 int height = 0;
 for (int i=0; i<count; i++)
 {
  height = (int)((double)rand()*rc.Height())/RAND_MAX;
  dc.Rectangle(x,rc.Height(),x+width,rc.Height()-height);
  x += width;
 }
 dc.SelectPen(hOldPen);
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜亚洲欧美日韩综合| 久久精品视频在线| 日韩成人在线网站| 欧美视频在线看| 国产成人一区二区| 欧美性jizz18性欧美| 91在线观看欧美日韩| 久久五月天色综合| 精品国产欧美一区二区五十路| 色噜噜久久综合伊人一本| www国产亚洲精品久久网站| 欧美极品美女视频网站在线观看免费| 91精品国产91久久久久福利| 91精品国产乱码久久久久久蜜臀| 狠狠色狠狠色综合日日五| 久久影院免费观看| 亚洲图中文字幕| 中文字幕久久久av一区| 欧美老女人xx| 国产精品99久久99久久久二8| 久久人91精品久久久久久不卡| 国产亚洲视频中文字幕视频| 国产激情999| 久久久视频免费观看| 日本成人激情视频| 在线观看欧美视频| 性色av一区二区三区在线观看| 日韩欧美在线视频| 国产激情综合五月久久| 亚洲一区二区三区久久| 成人女保姆的销魂服务| 中文字幕久热精品视频在线| 成人激情黄色网| 亚洲精品中文字幕女同| 亚洲香蕉在线观看| 国产成人+综合亚洲+天堂| 欧美综合一区第一页| 亚洲男女自偷自拍图片另类| 欧美大胆a视频| 91精品国产综合久久香蕉| 久久久久久久久国产精品| 激情亚洲一区二区三区四区| 亚洲bt欧美bt日本bt| 亚洲乱码av中文一区二区| 久久九九精品99国产精品| 亚洲一级黄色av| 欧美亚洲国产日本| 日韩中文字幕精品视频| 清纯唯美亚洲激情| 国产免费一区视频观看免费| 高清日韩电视剧大全免费播放在线观看| 久久精品成人欧美大片| 岛国精品视频在线播放| 一区二区亚洲精品国产| 欧美高清视频一区二区| 欧美在线视频观看| 中文字幕日韩欧美在线视频| 久久久中文字幕| 欧美亚洲伦理www| 亚洲欧美在线看| 免费不卡在线观看av| 久久99国产综合精品女同| 国产亚洲福利一区| 欧美精品videossex性护士| 色噜噜狠狠色综合网图区| 91成人天堂久久成人| 成人黄色av播放免费| 日韩电影中文字幕在线观看| 日韩av电影免费观看高清| 日韩亚洲精品电影| 免费成人高清视频| 清纯唯美亚洲激情| 国产亚洲精品久久久久久| 午夜精品久久久久久99热软件| 欧美高清性猛交| 亚洲女人天堂成人av在线| 亚洲成人网在线| 亚洲高清一区二| 国产在线视频不卡| 国产女人精品视频| 国产精品老女人视频| 成人羞羞国产免费| 91成人在线观看国产| 国语自产精品视频在线看抢先版图片| 91网站免费看| 亚洲成人国产精品| 91精品视频在线看| 国产成人一区二区三区小说| 久久人人爽人人爽人人片av高清| 日韩一区二区三区国产| 日韩中文视频免费在线观看| 国产精品高清在线观看| 日韩大片在线观看视频| 欧美日韩在线视频观看| 中文字幕亚洲激情| 亚洲free性xxxx护士白浆| 亚洲国产精品嫩草影院久久| 91视频国产精品| 亚洲欧美色图片| 亚洲欧美中文日韩在线| 久久av红桃一区二区小说| 色偷偷噜噜噜亚洲男人| 久久久久久久一区二区三区| 97视频在线观看视频免费视频| 久久久97精品| 欧美做受高潮电影o| 在线电影av不卡网址| 91免费观看网站| 91av福利视频| 夜色77av精品影院| 国产日韩欧美视频在线| 久久99国产精品久久久久久久久| 国产成人涩涩涩视频在线观看| 久久久综合av| 久久久999成人| 色综合亚洲精品激情狠狠| 久久精品国产欧美亚洲人人爽| 亚洲欧洲国产伦综合| 在线电影欧美日韩一区二区私密| 亚洲91精品在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 久久久久久中文| 2019亚洲男人天堂| 色偷偷av一区二区三区| 欧美另类极品videosbest最新版本| www.日韩系列| 亚洲www视频| 国产va免费精品高清在线| 欧美与欧洲交xxxx免费观看| 精品久久久久久久久久久久久久| 国产精品久久久久9999| 国产日韩精品在线播放| www.日韩欧美| 久久99精品久久久久久噜噜| 久久精品视频在线观看| 亚洲人成网站777色婷婷| 欧美亚洲激情在线| 日韩电影在线观看免费| 疯狂蹂躏欧美一区二区精品| 亚洲高清在线观看| 91伊人影院在线播放| 亚洲欧美精品伊人久久| 国产精品高清在线| 色播久久人人爽人人爽人人片视av| 欧美亚洲免费电影| 亚洲第一区中文字幕| 日韩视频欧美视频| 91久久国产综合久久91精品网站| 国产精品专区一| 国产日产亚洲精品| 国内精品在线一区| 日韩h在线观看| 欧美高清激情视频| 欧美一区二区三区……| 亚洲国产精品嫩草影院久久| 日韩毛片在线观看| 国产不卡精品视男人的天堂| 91精品综合久久久久久五月天| 国产日韩在线看| 日本一区二区在线免费播放| 欧美黄色性视频| 国产成人avxxxxx在线看| 亚洲在线免费观看| 欧美激情视频免费观看|