CDC绘图问题请教

widesnow 2009-01-23 10:43:30
我想将一张图片绘制到Dialog上,
请问在OnPaint()中使用如下代码
CDC *pDC = GetDC();
为何出现闪烁,
但是使用
CPaint cb(this);
就没有问题。
类似的问题在OnDraw(CDC *pDC)中也存在。
如果使用OnDraw的pDC就没有问题。而我自己GetDC就会出现闪烁。
为什么呢?敬请高手指教...
...全文
124 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovev8 2009-02-01
  • 打赏
  • 举报
回复
这种情况只有双缓冲可避免闪烁。
BenzKuai 2009-01-26
  • 打赏
  • 举报
回复
产生拷贝了,在画图的时候就会出现闪烁。
dxk01 2009-01-26
  • 打赏
  • 举报
回复
不同地方的CDC*还是有差别的
whypp 2009-01-26
  • 打赏
  • 举报
回复
CDC *pDC 不可以吗?
widesnow 2009-01-24
  • 打赏
  • 举报
回复
多谢,言简义赅。
showxier 2009-01-24
  • 打赏
  • 举报
回复
如果是将CPaintDC dc(this)//掉,再用GetDC,得的DC是哪个
aility 2009-01-23
  • 打赏
  • 举报
回复
跟着楼主学习下
arong1234 2009-01-23
  • 打赏
  • 举报
回复
无论再OnPaint还是在OnDraw中,系统已经有了一个DC,你就不应该再去GetDC. CPaintDC会利用你此前Invalidate的矩形区
去绘制,总体来说绘制的区域小。它本身不能消除闪烁,但是如果你GetDC,被复位的区域太大,出现闪烁的可能性就大多了

15,980

社区成员

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

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