OnCreate函数:将产生窗口
OnInitialUpDate:一般在这里对视图的显示做初始化;
简单的说,OnCrate只是产生VIEW的基本结构和变量,在OnInialUpdate中,主要初始化视图中的控件等,对各个变量进行初始化操作。
需要注意的是,在单文档的情况下,OnInitialUpDate会被调用多次。当应用程序被启动,或当用户从File菜单选择了New的时候,或当用户从File菜单选择了Open的时候,OnInitialUpDate虚函数都会被调用。CView基类中的OnInitialUpDate函数除了调用OnUpdate函数外没有做任何其他事情。如果在派生类中重载该函数一定要动用基类的OnInitialUpDate函数,或者调用派生类的OnUpdate函数。当应用程序启动时,框架调用视图类的OnCreate函数之后立即调用OnInitialUpDate函数。
因此,需要仅当创建视图的窗口时,才执行任何初始化应在 OnCreate() 消息处理程序而不是在 OnInitialUpdate() 函数中。
简单文档视图交互过程:
程序启动: CMyDocument对象被创建->CMyView对象被创建->视图窗口被创建->CMyView::OnCreate函数被调用(如果被映射)->CMyDocument::OnNewDocument函数被调用->
CMyView::OnInitialUpdate函数被调用->视图对象被初始化->视图窗口无效->CMyView:OnDraw函数被调用
用户编辑数据: CMyView类中函数对CMyDocument数据成员进行更新
退出程序: CMyView对象被删除->CMyDocument对象被删除