MFC学习笔记

本文解析了MFC的应用程序启动流程,从全局变量应用程序对象theApp开始,介绍构造函数调用过程,直至消息循环的运行。同时深入探讨了消息映射机制,包括消息如何被系统接收并映射到相应的类对象,以及如何通过基类处理消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Oncreate函数目前来看只运行了一次;


2.对于隐藏的this指针,不是类中的函数成员。当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行


3.而当类中有虚函数是系统自动增加一个虚函数指针成员;


4.消息大部分都是通过该类的基类进行处理;


5.MFC机制:首先由一个全局变量应用程序对象theApp启动--》构造函数的调用从基类开始初始化-分配内存空间--》AfxWinMain入口--》获取pAppAfxGetApp()--》开始初始化基类->InitApplication()<内部管理的>和基类->InitInstance()--》ProcessShellCommand((虚函数)调用子类InitInstance()--》开始注册窗口类AfxEndDeferRegisterClass()<之前系统事先设计了一些窗口类,有就直接注册即可>(单文档有特殊性,提前注册了)--》最终调用了RegisterClass()--》调用PreCreateWindow()<用来进行注册的>--》最终又调用RegisterClass()--》然后CreateWidow()--》其中又调用了PreCreateWindow()<用来改变窗口,他是一个虚函数,如果派生类改写了该函数则调用子类PreCreateWindow()>)窗口创建完毕--》ShowWindow()--》UpdateWindow()--》run()消息循环;子类到基类基类到子类基类中完成窗口的整个处理和消息的循环最终调用的还是SDK中的函数来产生和循环


6.一切的基本原理(设计注册创建显示更新消息循环都包含在基类当中)有没有变


7.消息映射:系统接收一个消息分析消息中的句柄--》然后将句柄映射到相对应的类对象中--》将该消息的响应通过该类传递到基类中--》再由基类中通过消息循环调用--》WindowProc再调用-》OnWndMsg进行真正的消息路由并判断有没有消息响应函数(声明,响应宏。。)-->有就调用相关的响应函数(孙鑫四18:11);


8.可以使用虚函数进行消息的响应,但因为虚函数表过于庞大。所以微软使用了消息响应的机制避免了空间上的浪费;

每一个窗口类中在它的

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值