1、WM_PAINT我就不说了,研究mfc最好去msdn学习http://msdn.microsoft.com/en-us/library/e6htdchf%28v=vs.80%29.aspx,配合看继承图http://msdn.microsoft.com/en-us/library/ws8s10w4%28v=vs.80%29.aspx
2、虚函数是为了实现C++的多态性,也就是说为了实现你自己定义自己功能的OnDraw,像MFC这种很庞大的MFC,必须考虑多态性,即可扩展性
你首先有理解什么是虚函数,虚函数存在的意义是什么,C++中虚函数的调用是怎样实现的,这样你才能真正明白,MFC中这些函数的调用关系。
简单的说,虚函数是为了扩展和多态而产生的。从目的来看虚函数是一个接口,允许你在原有代码的基础上加入自己的代码,而无需改变以前的代码,从而达到扩展的目的。
(不知你能否看明白)
例如:我要画一个人,需要以下三个步骤
A: 画头
B: 画身体
C: 画脚
这三步骤封装在一个程序文件里面。
但是你对这个文件画的头不满意,要加入更多的细节,怎么办呢,你又不能改变原来的代码。这个时候,就是虚函数的用武之时了。原文件只需将画头的代码改为虚函数,新代码继承原代码,你只需改写你的 画头的 虚函数就完成的新代码,而不用对原有代码有丝毫改变。
所以 OnDraw 是在系统画MFC界面时,调用的, 如果你对系统本身画的界面的某部分不满意,或者想加入自己的内容,就可以改写这个函数。明白了吗!