关于MFC画图闪烁的问题
我在做数字图像处理,用的是CxImage库。我现在需要实现一个动画效果,即是每画一些点然后暂停一下。我尝试用ima->SetPixelColor(i,j,rgb);Inv...
我在做数字图像处理,用的是CxImage库。我现在需要实现一个动画效果,即是每画一些点然后暂停一下。我尝试用
ima->SetPixelColor(i,j,rgb); Invalidate(); UpdateWindow(); Sleep(1);
或
ima->SetPixelColor(i,j,rgb); InvalidateRect(rec); UpdateWindow(); Sleep(1);
之后动画效果是有了,但是画面不停闪烁,问下应该如何解决?谢谢!
我用的是MFC多文档。回1楼,关于窗口更新时背景删除属性,我已对OnEraseBkgnd进行重载,发现可以,但是出现另一个问题就是最大化窗口以后画面会卡住,如何解决?回2楼,我看了下双缓冲绘图好像只适用于用CBitmap画图,但是我用的是外部库CxImage,应该不能用吧。另外onsize的时候由于无法获得我要画的那个图的句柄,只能Invalidate(),还是和原来一样改变窗口大小窗体显示内容没有刷新,所以还是不行。 展开
ima->SetPixelColor(i,j,rgb); Invalidate(); UpdateWindow(); Sleep(1);
或
ima->SetPixelColor(i,j,rgb); InvalidateRect(rec); UpdateWindow(); Sleep(1);
之后动画效果是有了,但是画面不停闪烁,问下应该如何解决?谢谢!
我用的是MFC多文档。回1楼,关于窗口更新时背景删除属性,我已对OnEraseBkgnd进行重载,发现可以,但是出现另一个问题就是最大化窗口以后画面会卡住,如何解决?回2楼,我看了下双缓冲绘图好像只适用于用CBitmap画图,但是我用的是外部库CxImage,应该不能用吧。另外onsize的时候由于无法获得我要画的那个图的句柄,只能Invalidate(),还是和原来一样改变窗口大小窗体显示内容没有刷新,所以还是不行。 展开
3个回答
展开全部
用内存作图
MemDC搜索一大堆
MemDC搜索一大堆
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以 重写 消息函数 然后 再用双缓冲
不要用 ima->SetPixelColor(i,j,rgb); InvalidateRect(rec); UpdateWindow(); Sleep(1);
不要用 ima->SetPixelColor(i,j,rgb); InvalidateRect(rec); UpdateWindow(); Sleep(1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询