Create与OnCreate的区别

本文详细解释了在MFC框架中OnCreate与Create函数的区别与联系。OnCreate用于表示窗口正在生成,而Create则用于实际创建窗口。文章还强调了在ToolBar::OnCreate中不应调用依赖于完全创建好的控件成员函数。

OnCreate

  在view类中,create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。   oncreate 消息响应函数,是用来“表示一个窗口正在生成”。   某个CWnd的Create函数由当前CWnd的Owner调用, 而在CWnd::Create中,又会调用OnCreate函数,但是实际上这个时候Create函数还没有退出,CWnd的某些部分还没有创建好。所以,在ToolBar::OnCreate中,不能调用CommandToIndex,因为CommandToIndex需要等CToolBar全部创建好之后CToolBar::Create退出)才能被调用,否则返回值一直是-1   oncreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,create()负责注册并产生窗口

  create()不是对应于消息wm_create的,oncreate()才是。create()只用于产生窗口,像动态创建控件中的create()一样。

 

 

 

在view类中,create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。     oncreate 消息响应函数,是用来“表示一个窗口正在生成”。

    某个CWnd的Create函数由当前CWnd的Owner调用, 而在CWnd::Create中,又会调用OnCreate函数,但是实际上这个时候Create函数还没有退出,CWnd的某些部分还没有创建好。所以,在ToolBar::OnCreate中,不能调用CommandToIndex,因为CommandToIndex需要等CToolBar全部创建好之后CToolBar::Create退出)才能被调用,否则返回值一直是-1

    oncreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,     create()负责注册并产生窗口

    create()不是对应于消息wm_create的,oncreate()才是。create()只用于产生窗口,像动态创建控件中的create()一样

 

转载于:https://www.cnblogs.com/wuguoqiang/p/5955397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值