OnPaint和OnDraw有什么不同?
Posted on 八月 16rd, 2007 由 admin
用vc6建立一个mfc sdi工程
1 当选择document/view支持时,vc自动生成的view里的重画函数为ondraw
2 当不选择document/view支持时,vc生成的view里的重画函数为onpaint
为什么会有这种区别?为什么在2下不生成ondraw?
推荐阅读
网友:zhouyong0371
"深入浅出mfc"第684页解释的很简洁:
ondraw中一般是通用绘图代码,常常是设备无关的。会被onprint和onpaint调用。
onpaint中是一般显示相关代码加上调用ondraw。例如,如果onpaint中先判断窗口无需重画,则不调用ondraw。
cview类有onpaint函数,如果不重载cview的onpaint,则缺省实现onpaint调用ondraw,所以如果你重载onpaint,而没有在onpaint里边调用cview::onpaint或者ondraw的话,ondraw就不会被调用。


讨论区