OnPaint和OnDraw有什么不同?

fat_how 2003-08-24 04:35:52
用vc6建立一个MFC SDI工程
1 当选择Document/View支持时,vc自动生成的View里的重画函数为OnDraw
2 当不选择Document/View支持时,vc生成的View里的重画函数为OnPaint

为什么会有这种区别?为什么在2下不生成OnDraw?
...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyong0371 2003-08-24
  • 打赏
  • 举报
回复
"深入浅出MFC"(第二版电子书,来自侯捷网站)第684页解释的很简洁:
OnDraw中一般是通用绘图代码,常常是设备无关的。会被OnPrint和OnPaint调用。
OnPaint中是一般显示相关代码加上调用OnDraw。例如,如果OnPaint中先判断窗口无需重画,则不调用OnDraw。


CView类有OnPaint函数,如果不重载CView的OnPaint,则缺省实现OnPaint调用OnDraw,所以如果你重载OnPaint,而没有在OnPaint里边调用CView::OnPaint或者OnDraw的话,OnDraw就不会被调用。
hellolwl 2003-08-24
  • 打赏
  • 举报
回复
OnPaint内部调用OnDraw

15,980

社区成员

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

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