OnCreate 函数的说明
来源:互联网 发布:头像源码怎么用 编辑:程序博客网 时间:2024/05/17 20:00
http://www.cnblogs.com/carbs/archive/2012/04/29/2475955.html
通常你要先建立(OnCreate)一个窗体, 然后再对他进行初始化(OninitDialog).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
响应WM_CREATE消息(即OnCreate)的时候窗口还没有建立,你可以给成员变量赋值,也可以修改窗口的基本内容比如风格,但是不能对窗口控件操作,因为窗口还没有建立。
在响应WM_CREATE消息的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初始化。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
响应WM_INITDIALOG消息(即OnInitDialog)时候窗口已经建立,你可以移动窗口,修改风格等等,也可以给成员变量赋值。
WM_INITDIALOG消息响应函数是在程序运行时,当其对话框和子控件全部创建完毕,将要显
OnInitDialog()调用的时候还没有产生m_hwnd;这时所有需要m_hwnd作为参数的 api函数都不能调用;
OnCreate()调用的时候已经产生了m_hwnd;
WM_CREATE的时候窗口还没有建立,你可以给成员变量赋值,也可以修改窗口的基本内容比如风格,但是不能对窗口控件操作,因为窗口还没有建立。
INITDIALOG时候窗口已经建立,你可以移动窗口,修改风格等等,也可以给成员变量赋值,
OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。
在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。
一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate()函数主要是用来响应此消息的。因为在MFC里面用一种消息映射的机制来响应消息,也就是可以用函数来响应相应的消息。就拿CMainFrame类来说,当窗口创建后会产生WM_CREATE消息,我们可以在OnCreate函数里实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。这些子窗口一般是定义成类中的一个成员变量,因为要保证生命周期。一般以m_开头来表示成员(member)。
OnCreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,Create()负责注册并产生窗口
Create()不是对应于消息WM_CREATE的,OnCreate()才是。Create()只用于产生窗口,像动态创建控件中的Create()一样。
关于OnCreate和OnDraw
初学MFC 刚开始,我在view类中的OnCreate()中写了一段向窗口中插入一个光标的代码,一切正常,然后又在OnDraw()中写了一段想窗口中插入一段字符的代码,也一切正常,但当我把这两个东西颠倒过来,也就是在OnCreate()中写插入一段字符的时候,运行是根本看不到效果,而在OnDraw()中写插入光标的时候,当我用鼠标改变窗口的大小的时候,程序就爆掉了,请问这是为什么?
- OnCreate 函数的说明
- OnCreate 函数的说明
- 2014-05-13:OnCreate 函数的说明
- 关于Android应用程序中重载函数onCreate(Bundle savedInstanceState)的一些简单说明
- Android Activity的onCreate()函数
- MFC的oncreate函数作用
- OnCreate函数
- OnCreate函数
- 窗体的构造函数和OnCreate事件
- SQLiteOpenHelper调用onCreate函数的时机
- OnCreate()和PreCreateWindow()函数的区别
- 2简介WindowImplBase的OnCreate()函数
- Activity的实例 onCreate()函数 构造方法
- android官方文档关于oncreate()的参数说明
- Cminframe类Oncreate函数
- OnCreate和OnIntialUpdata函数
- OnCreate()和OnDraw()函数
- OnCreate消息函数
- C语言栈、堆和静态区
- SVN的基本安装使用方法
- 黑马程序员_关于银行业务调度系统的设计思路
- 2.SQL Server DML触发器之COMMIT和ROLLBACK TRANSACTION
- ImportError: No module named Image IOError: decoder zip not available
- OnCreate 函数的说明
- 小团队内部竞争以及如何避免
- Linux的文件系统
- Android游戏开发想法
- APUE----关于O_SYNC等的区别
- 删除注册表
- 开源地址
- 3.SQL Server DML触发器--检测对指定列的UPDATE或INSERT操作
- c# MODBUS协议 上位机