在窗口的CWnd::Create()/CreateEx()调用返回前,要调用PreCreateWindow(),对Create()/CreateEx()中的风格参数进行预处理设置.之后调用OnCreate进行实际的窗口创建,返回后,Create()/CreateEx()也返回,窗口创建结束.

PreCreateWindow()顾名思义就是在窗口创建之前执行的,它的主要任务是对所要创建的窗口进行一些风格或者其他方面的初始化或者说是设置,可以这么说,如果说窗口好比一栋建筑,那么PreCreateWindow()要做的就是在还没有建筑的时候将建筑的图纸画出来,而OnCreate()要做的就是根据图纸将建筑构建起来.

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()与PreCreateWindow()相关推荐

  1. 解决在onCreate()过程中获取View的width和Height为0的4种方法

    此博客为转载,原文请看这位老铁的文章: https://www.cnblogs.com/kissazi2/p/4133927.html 很经常当我们动态创建某些View时,需要通过获取他们的width ...

  2. android 不重新加载,android – 返回Activity而不重新创建(不调用onCreate())

    在导航应用程序时无需完成()活动.相反,您可以维护您的Activity back-stack并仍然实现您的目标.假设你有4个这样的活动: A – > B – > C – > D. 其 ...

  3. 在启动activity之前,调用application的oncreate

    <application android:label="@string/app_name" android:icon="@drawable/icon" a ...

  4. android Service oncreate 在UI线程 何时用service,何时用thread

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 服务的生命周期 各个方法 都是在主线程中的. 这里的操作可以导致主线程阻塞. 这些方法, ...

  5. android onCreate的两个方法

    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {} override ...

  6. Android在OnCreate中获取控件的宽度和高度

    在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...

  7. 两个onCreate方法?你真的了解onCreate()么?

    Activity的onCreate方法一直是我们编写一个activity最先重载的方法.细心的小伙伴在编写代码的时候回看到这样一幕: 咦,这里怎么会有两个onCreate提供给我们重载?选择困难症患者 ...

  8. Android中全局Application的onCreate多次调用问题

    2019独角兽企业重金招聘Python工程师标准>>> 一般来说Application的onCreate方法只会执行一次, 如果应用中采用多进程方式,oncreate方法会执行多次, ...

  9. 关于Android中的onCreate()多次被调用导致bindService被多次调用的问题...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/50511776                 ...

最新文章

  1. darknet53的网络结构笔记
  2. 16 系统测试之功能测试
  3. 他是20世纪最伟大的发明家之一,却因竞争对手迫害,郁郁而终
  4. 解决Android中多次点击启动多个相同界面的问题
  5. 初学__Python——Python数据类型之文件
  6. Spring---------ThreadLocal(线程变量副本)
  7. Centos中常见error(网卡、网络、防火墙)
  8. 【原创】C# war3 巨魔精灵 minimap
  9. java coherence_Coherence配置默认覆盖路径
  10. Android 应用开发(39)---GridLayout(网格布局)
  11. 程序、线程、进程的区别(python、Java举例)
  12. 偏标记(partial)学习
  13. 佳易王收银管理软件和扫码通M800大部分扫码支付平台对接步骤:
  14. 如何打开剪贴板查看器?
  15. 软件开发工程师证书有用吗_软件设计师证书重要吗?
  16. 决策树案例:是否打网球
  17. 学计算机专业可以做施工员吗,大龄转行做工程施工员,学起吃力吗?
  18. Java— 齐头并进完成任务—多线程
  19. seq2seq简单总结
  20. dlp型3d打印机_DLP3D打印机的工作原理及优势

热门文章

  1. 自动化测试学习daytwo(接口自动化概论)
  2. #717 Cut(倍增)
  3. 实现可点击的幸运大转盘
  4. “人工智能基础”课程笔记
  5. Office办公 如何设置WPS的默认背景大小
  6. 远程办公使用单位内网Excel【内网穿透】
  7. 该升级了,阿里云Code升级Codeup | 云效
  8. 调用聚合数据平台天气接口
  9. HTTP 请求是什么?
  10. 市场因子(Market Factor)——投资组合分析(EAP.portfolio_analysis)