头晕了,ClassWizard中,CView捕捉消息响应,Message下有Create和WM_CREATE,两者啥区别?
是不是WM_CREATE发生在create之前,Create发生在create之后?

解决方案 »

  1.   

    Create 是用于生成 CView 对象的函数;WM_CREATE 是窗口生成的时候的消息;所以,我理解的是,Create 函数先被调用,然后 WM_CREATE 消息出现,通常,这里会调用 OnCreate 函数;最后,Create 函数退出。
      

  2.   

    Create是CView的成员函数,这个函数与消息无关的。WM_CREATE消息的响应函数是OnCreate。
    Create函数由框架调用,应该是在CView类对象创建时调用的,而OnCreate是窗口创建时,已经创建完成,在显示之前调用的,两个完全不同。
      

  3.   

    Create和WM_CREATE,正好是对应的。WM_CREATE应该发生在create稍后。因为你在WM_CREATE消息的响应函数OnCreate中,可以使用this指针,往上绘制控件:CButton* m_btn =new CButton;    CRect button1(160,0,280,30);
    m_btn->Create("添加句型",WS_CHILD | BS_DEFPUSHBUTTON,button1,this,IDB_BUTTONWG);
    m_btn->ShowWindow(SW_SHOWNORMAL);
    m_obArray.Add(m_btn);
    m_intArray.Add(1);另外,还有一个OnInitialUpdate(),应该在Create和WM_CREATE之前,你可以在其中这只CView的样式,那么绘出来的就是你要的样式了。
      

  4.   

    OnCreate函数的调用是在Create函数执行之时,在Create函数返回之前调用的。在调用Create函数时,会有WM_CREATE消息,该消息的响应函数就是OnCreate函数。