这是我的一点理解 
1 窗口依照窗口对象建立; 
2 窗口类对象有一个窗口句柄; 
3 窗口销毁时窗口类对象不一定销毁 
4 窗口类对象销毁时与之对应的窗口也销毁 困惑: 
CMENU类有个Detach函数在局部对象销毁后让菜单继续工作把菜单对象与菜单句柄分离 
每个窗口在构造的时候都指定一个窗口函数 
分离之后“菜单窗口”的窗口函数怎么办? 
CWnd类的窗口函数应该是对象构造的时候建立的吧

解决方案 »

  1.   

    前3点差不多是你理解的样子。第4点不对,类对象销毁时不会自动销毁窗口,这种情况很可能出现问题,应该先销毁窗口或使窗口与对象分离后再销毁对象。
    菜单不是窗口。
    窗口函数是在注册WNDCLASS类的时候指定的,窗口创建后可以再修改。
    CWnd类中的WindowProc是在类中定义的,窗口函数是在对象与窗口关联时设置的。
      

  2.   

    CMENU 派生与CObject 
    并不是在Cwnd下