GDI+ 双缓冲绘图还是闪烁

tx183584 2011-10-01 08:41:02

Bitmap bmp(ii.Width,ii.Height);
Graphics bmpGraphics(&bmp);
bmpGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
bmpGraphics.DrawImage(OnPaintImage,0,0,ii.Width,ii.Height);

/*Important! Create a CacheBitmap object for quick drawing*/
CachedBitmap cachedBmp(&bmp,graphics);
//graphics->DrawCachedBitmap(&cachedBmp,Pos.X,Pos.Y);
graphics->DrawImage(&bmp,Pos.X,Pos.Y);
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-10-21
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
wsadfg 2011-10-02
  • 打赏
  • 举报
回复
错了, 背景要刷在缓存位图上.
wsadfg 2011-10-02
  • 打赏
  • 举报
回复
// 添加 WM_ERASEBKGND 消息处理函数
BOOL CChildView::OnEraseBkgnd(CDC* pDC)
{
return TRUE; // 直接返回TRUE (不刷背景)
}

void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文

// 自己刷背景
CRect rect;
GetClientRect(&rect);
dc.FillSolidRect(&rect, RGB(255,255,255));

// 在缓存位图上绘图
// ...

// 缓存位图绘制到dc
// ...
}
junkli 2011-10-02
  • 打赏
  • 举报
回复
没人能指点下吗..

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧