视图中的构造函数、OnCreate和OnInitiaUpDate进行初始化的区别
2010-11-04 14:06
363 查看
构造函数:产生本类的对象,但是没有产生窗口;
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对象被删除
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对象被删除
相关文章推荐
- 视图中的构造函数、OnCreate和OnInitiaUpDate进行初始化的区别
- 视图中的OnCreate和OnInitialUpDate进行初始化有何不同[转]
- 视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- 在CView类的构造函数,OnCreate,或OnInitialUpDate中进行初始化有何不同?
- 视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- 初学vc8-视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- 视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- Create OnCreate OnInitialUpdate OnCreateClient 构造函数之间关系
- 初始化中OnCreate与OnResume的区别
- Create OnCreate OnInitialUpdate OnCreateClient 构造函数之间关系
- Create OnCreate OnInitialUpdate OnCreateClient 构造函数之间关系
- onCreateOptionsMenu和onPrepareOptionsMenu的区别
- SS7.1_Hibernate_CRUD_ByXML~SS7.2_Hibernate_CRUD_ByXML使用Session对数据库进行增删改查以及saveOrUpdate/merge()的区别
- C++ 中使用构造函数初始化列表和普通构造函数内部初始化的区别
- OninitDialog与OnCreate两个消息有何区别
- Java编程思想笔记_以构造函数确保初始化的进行
- C++ 在初始化列表中初始化和在构造函数内初始化的区别
- 安卓开发——activity的一些初始化的工作,在oncreate中做还是onresume中做
- 转载--c++中构造函数初始化的方法以及主要区别
- mysql之replace和ON DUPLICATE KEY UPDATE的区别