请问OnPaint()函数和OnDraw()函数有什么区别???

face2003 2003-08-22 10:54:29
如题!!
...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oceanslan 2003-09-06
  • 打赏
  • 举报
回复
CView类有OnPaint函数,如果不重载CView的OnPaint,则缺省实现OnPaint调用OnDraw,所以如果你重载OnPaint,而没有在OnPaint里边调用CView::OnPaint或者OnDraw的话,OnDraw就不会被调用。
OnDraw中一般是通用绘图代码,常常是设备无关的。会被OnPrint和OnPaint调用。
OnPaint中是一般显示相关代码加上调用OnDraw。例如,如果OnPaint中先判断窗口无需重画,则不调用OnDraw。
hchzju 2003-08-24
  • 打赏
  • 举报
回复
"深入浅出MFC"哪儿有下?
zhouyong0371 2003-08-23
  • 打赏
  • 举报
回复
"深入浅出MFC"(第二版电子书,来自侯捷网站)第684页解释的很简洁:
OnDraw中一般是通用绘图代码,常常是设备无关的。会被OnPrint和OnPaint调用。
OnPaint中是一般显示相关代码加上调用OnDraw。例如,如果OnPaint中先判断窗口无需重画,则不调用OnDraw。


CView类有OnPaint函数,如果不重载CView的OnPaint,则缺省实现OnPaint调用OnDraw,所以如果你重载OnPaint,而没有在OnPaint里边调用CView::OnPaint或者OnDraw的话,OnDraw就不会被调用。

AK_huang 2003-08-23
  • 打赏
  • 举报
回复
关注
jennifergiant 2003-08-23
  • 打赏
  • 举报
回复
up
akun 2003-08-22
  • 打赏
  • 举报
回复
OnPaint 是 窗口重绘,一般在dialog用
OnDraw 一般是客户区重绘,一般在view中用

bcpl 2003-08-22
  • 打赏
  • 举报
回复
OnPaint是消息映射函数,用来处理WM_PAINT消息。
OnDraw是CView的虚函数,由OnPaint调用,可由自己的派生类改写。
使用OnDraw可以使OnDraw一般化地处理屏幕或打印机等输出设备
face2003 2003-08-22
  • 打赏
  • 举报
回复
还有吗?

2,586

社区成员

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

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