MFC的oncreate函数作用
2015-10-24 20:11
302 查看
百科: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()和OnDraw()函数的作用和用法,才能正确使用下面是他们的用法: OnCreate()是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate()函数主要是用来响应此消息的。因为在MFC里面用一种消息映射的机制来响应消息,也就是可以用函数来响应相应的消息。就拿CMainFrame类来说,当窗口创建后会产生WM_CREATE消息,我们可以在OnCreate函数里实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。这些子窗口一般是定义成类中的一个成员变量,因为要保证生命周期。一般以m_开头来表示成员(member)。OnCreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,Create()负责注册并产生窗口 OnDraw()函数每当窗口发生重绘时就会执行,它其实跟消息处理函数OnPaint()差不多。当在View类里添加了消息处理函数OnPaint()时,OnPaint()就会覆盖掉OnDraw()。 用鼠标改变窗口的大小的时候,程序就爆掉这个应该是窗口重绘是有异常,有是编译程序是警告是不能忽略的,看看有什么警告把警告处理了。希望对你有所帮助!
转载:http://www.cnblogs.com/carbs/archive/2012/04/29/2475955.html
相关文章推荐
- 寒门再难出贵子
- 承诺c指针 (1)指针是地址
- poj 2002 hash
- 分享一个解析html的python的框架--AdvancedHTMLParser
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- 机器学习之K近邻算法(KNN)
- xcode非app store安装方法
- 异步(ajax)配合一般处理程序 验证用户名
- JSP脚本中的9个内置对象
- LSD-SLAM深入学习(2)-算法解析
- PHP 7 vs HHVM 比较
- 每天一个linux命令(20):find命令之exec
- Html 语法学习笔记三
- 模板 读入挂
- 【Little_things】控制台五子棋(java)
- 修改MySQL数据库Root密码
- 有人认为“中文编码”是解决中国程序员编程效率的秘密武器,那么它是否是一个“银弹”?
- IDF 牛刀小试- 摩斯密码
- effective c++ 在资源管理类中小心copying 行为
- 第三十三篇:私人通迅录(有存储功能)