荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oopilix (PADRAD), 信区: Visual
标  题: Re: [fr]无闪烁显示
发信站: 荔园晨风BBS站 (Tue May 20 18:43:51 2003), 站内信件


双缓冲技术,可以实现动画等近无闪烁显示
从CSDN收录的。
【 在 littlebao (爱拼才会赢) 的大作中提到: 】
: GOOD ,oopilix真实个好人,怎么不申请做板斧?
: 可否简单说一下原理。什么技术来着?
: 【 在 oopilix (PADRAD) 的大作中提到: 】
: : 在OnDraw加入以下代码
: : {
: :         CDC dc;
: :         CDC* pDrawDC = pDC;
: :         CBitmap bitmap;
: :         CBitmap* pOldBitmap;
: :         CRect client;
: :         pDC->GetClipBox(client);
: :         CRect rect = client;
: :         DocToClient(rect);
: :         if (!pDC->IsPrinting())
: :         {
: :                 if (dc.CreateCompatibleDC(pDC))
: :                 {
: :                         if (bitmap.CreateCompatibleBitmap(pDC,  rect.Width()
, rect.Height()))
: :                         {
: :                                 OnPrepareDC(&dc, NULL);
: :                                 pDrawDC = &dc;
: :                         dc.OffsetViewportOrg(-rect.left, -rect.top);
: :                                 pOldBitmap = dc.SelectObject(&bitmap);
: :                                 dc.SetBrushOrg(rect.left % 8, rect.top % 8);
: :                                 dc.IntersectClipRect(client);
: :                         }
: :                 }
: :         }
: : //绘图操作
: : //
: :         if (pDrawDC != pDC)
: :         {
: :                 pDC->SetViewportOrg(0, 0);
: :                 pDC->SetWindowOrg(0,0);
: :                 pDC->SetMapMode(MM_TEXT);
: :                 dc.SetViewportOrg(0, 0);
: :                 dc.SetWindowOrg(0,0);
: :                 dc.SetMapMode(MM_TEXT);
: :                 pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height()
,
: :                         &dc, 0, 0, SRCCOPY);
: :                 dc.SelectObject(pOldBitmap);
: :                 bitmap.DeleteObject();
: :                 brush.DeleteObject();
: :         }
: : }


--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.39]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店