我在很多书上看到程序要求对消息响应函数进行重栽,还遇到过对对话框的初始化函数重栽,我不太明白,消息响应函数对应一个消息响应,怎么还可以重栽?书上说重栽没说要改变参数。重栽对话框的初始化函数也没说参数要改变,请问是怎么回事?

解决方案 »

  1.   

    不是重载,而是改写
    重载:overload
    改写:override
      

  2.   

    消息相应函数中调用虚函数,利用虚函数的特性,允许你修改相应行为,CAsyncSocket中就是典型的这种应用,如果得到一个连接的时候发送一个消息,CAsyncSocket处理这个消息的是虚函数OnConnect(),你重载这个虚函数,那么处理这个消息的动作就变成重载以后的函数。
      

  3.   

    对于SDK,的确是写WindowProc处理消息,重载消息只能子类化窗口;
    而MFC内部利用消息映射函数表,把消息处理机制模拟成了函数重载。而且MFC本身提供可重载一些虚函数,两者在ClassWizard中混在一起,就容易弄混了,要搞清楚建议看《深入浅出MFC》。