MFC架构之CWinApp类

[Unity]原生网络框架 前阵子做的项目音之国度,用到了Unity的原生网络框架RPC,不如Photon之的功能强大,但却十分好理解。 1.基本原理     服务器程序初始化一个server型的network,初始化完后,所有的客户端通过ip和端口,和服务器建立起传输的初始化,当真正需要传输数据的时候,是基于一种叫rpc的机制——远程主机调用,比如客户端想执行走的业务逻辑,首先在客户端申明走的函数的原型,但并没有具 阅读详情

      CWinApp是一个基类,你通过它来继承Windows应用程序对象。应用程序对象为你提供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。它实现主事件循环并把事件分发给MFC中其他类.
      每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C++全局对象都已经生成并且可用之后才被创建,WinMain函数是由微软基础类库提供的。将你的CWinApp对象定义为全局的。
      当你从CWinApp继承应用程序类的时候,应重载InitInstance成员函数以创建应用程序的主窗口对象。
除了CWinApp的成员函数以外,微软基础类库还提供了以下全局函数,用于访问你的CWinApp对象以及其它全局信息:

1.成员变量

m_pszAppName       应用程序名称
m_hInstance        当前实例的句柄
m_hPrevInstance    上一个实例的句柄
m_lpCmdLine        用于调用的命令行的一个拷贝
m_nCmdShow         指定窗口初始时的显示方式
m_bHelpMode        如果应用程序处于Help文档模式则为TRUE
m_pActiveWnd       如果应用程序是OLE服务方式并且当前处于活动状态.则它指向容器主窗口
m_pszExeName       EXE文件的名称
m_pszHelpFilePath  程序的Help文件的路径
m_pszProfileName   应用程序的INI文件的名称
m_pszRegistryKey   应用程序的注册表键值

 

2.常用全局函数

AfxGetApp                       返回指向应用程序的CWinApp对象的指针.
AfxGetInstanceHandle    返回应用程序的实例的句柄.
GfxGetResoureHandle     返回程序的资源的句柄.
AfxGetAppName              返回应用程序的名称.

 

3.可重载函数

InitInstance                    可被重载以执行Windows的实例初始化,比如创建窗口对象
Run                                 运行缺省的消息循环。可被重载以定制消息循环
OnIdle                             可被重载以执行应用程序指定的空闲时处理
ExitInstance                    可被重载以在应用程序结束时执行清除操作
HideApplication               在关闭所有的文档之前隐藏应用程序

InitApplication                 初始化应用程序
CloseAllDocuments         关闭所有打开的文档
PreTranslateMessage     在消息被分派到Windows函数::TranslateMessage和::DispatchMessage之前过滤消息
SaveAllModified              提示用户保存所有改变了的文档
DoMessageBox              为应用程序实现AfxMessageBoxProcessMessageFilter在消息到达应用程序之前截取特定的消息
ProcessWndProcException 截取应用程序的消息和命令处理函数抛出的未被处理的异常
DoWaitCursor                打开或关闭等待光标
OnDDECommand           框架调用这个函数以响应动态数据交换(DDE)执行命令
WinHelp                         调用Windows的WinHelp函数

 

4.命令处理

OnFileNew                  实现ID_FILE_NEW命令
OnFileOpen                 实现ID_FILE_NEW命令
OnFilePrintSetup         实现ID_FILE_PRINT_SETUP命令
OnContextHelp           处理应用程序内的SHIFT+F1命令
OnHelp                        处理应用程序内的F1帮助命令(使用当前的上下文)
OnHelpIndex               处理ID_HELP_INDEX命令,提供缺省的帮助主题
OnHelpFinder              处理ID_HELP_FINDER和ID_DEFAULT_HELP命令
OnHelpUsing               处理ID_HELP_USING命令

 

本文转自:http://www.kaifa6.com/v/mfcshouce/class/CWinApp.htm

MFC知识点整理 1、MFC包含哪几程序? 阅读详情

相关推荐

深入解析MFC中的CWinApp:功能函数详解与代码示例

CWinApp继承自CWinThread,表示应用程序本身,它封装了WinMain函数的功能。主要职责包括:初始化应用程序实例。运行消息循环。处理空闲时间任务。清理资源并退出。在MFC中,您需要从CWinApp派生一个,并重写关键函数如InitInstance来定义应用程序行为。CWinAppMFC应用程序的基石,它提供了完整的生命周期管理。通过重写关键函数如InitInstance、Run和ExitInstance,开发者可以自定义应用程序行为。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 185

Unity3D RPC函数实现血量值同步代码1

Unity3D RPC函数实现血量值同步代码 Posted on 2013年03月20日 by U3d / Unity3D脚本/插件/被围观 388 次 Uni

MFC深度教程:架构与工作原理详解(上半部)

本文还有配套的精品资源,点击获取 简介:MFC教程深入浅出地解释了Microsoft Foundation Classes的架构和工作原理,涵盖了其核心框架的结构以及消息映射、控件和对话框、资源管理、数据库支持和网络编程等关键组件。上半部分着重于基础概念的介绍,并通过实例展示MFC在实际开发中的应用。下半部分将深入探讨更多高级主题。 1. MFC基础架构概览 ...

weixin_36474001的博客 2587

unity RPC网络传输

unity 自带的network能满足一般的传输要求了,分两,远程调用(RPC)和状态同步,其中状态同步适合做位置、方向之的同步,RPC适合调用方法或提交数据。 要使用RPC 首先服务器端代码和客户端代码中所有的方法都必须一样,没有研究是否可以是方法名相同内容不同的情况。即使不用也要有! 把用于RPC的方法上面写上[RPC] 例如 [RPC] void ReceiveMessage(

liuxincin的专栏 8223

unity中如何使用pun2中的RPC进行网络同步

第一个参数就代表着我们传输的方法使用函数的名字来指明,第二个参数是谁可以收到这个RPC的消息,第三个参数是一个Bool型的参数用来控制Sphere的显示隐藏。在使用RPC进行网络同步之前,你需要有一个可以连上photon服务器以及进入大厅和房间的基础项目。然后最重要的是要给这个父物体添加一个Photon View组件,要确保他的view id 唯一,其他的选项默认都行。给这个空物体添加一个子物体Sphere,并且先把这个Sphere给隐藏掉,Sphere上没有任何脚本。之后给他添加一个脚本,内容如下。

weixin_48195035的博客 1936

Unity Protobuf+RPC+UniTask

远程过程调用(Remote Procedure Call,简称RPC)是一种网络通信协议,允许程序在不同的地址空间(通常在不同的物理计算机上)中调用彼此的方法,好像它们是在本地执行的一样。RPC隐藏了底层的网络通信细节,使开发人员能够像调用本地函数一样简单地调用远程服务。

qq_25670983的博客 1199

深入解析MFC源代码项目

MFC(Microsoft Foundation Classes)库是微软提供的一套用于简化Windows应用程序开发的C++库。它将Windows API的复杂性封装在面向对象的接口中,从而让开发者能够更加专注于业务逻辑的实现。本章将对MFC库进行一个基础概述,从它的起源与设计哲学谈起,概述核心及它们在应用程序中的作用,为后续章节的深入学习打下坚实的基础。在探讨MFC之前,理解Windows应用程序的工作原理是很有必要的。

weixin_31659095的博客 763

轻松入门:掌握最简单MFC程序编写

MFC(Microsoft Foundation Classes)是微软公司提供的一套C++库,用于简化Windows应用程序的开发。MFC封装了Windows API,提供了一个面向对象的编程框架,使得开发者能够通过继承特定的MFC来创建窗口、处理消息、绘制图形等,从而减少直接使用API的复杂性。CWinAppMFC(Microsoft Foundation Classes)中用于封装Windows应用程序全局数据和行为的一个重要

weixin_36122351的博客 4607

MFC中文帮助文档详解与实践

MFC(Microsoft Foundation Classes)是一个封装了Windows API的C++库,旨在简化Windows应用程序的开发。MFC定义了若干基础,如CObject,它们构成了MFC框架的核心。基础为开发者提供了丰富的预定义功能,包括异常处理、动态对象创建、对象串行化等。文档/视图架构基于MVC(Model-View-Controller)设计模式,将应用程序分为三个主要部分:文档(Document): 表示和管理应用程序的数据。视图(View)

weixin_42601608的博客 931

MFC窗口程序设计实战教程:源代码解析

本文还有配套的精品资源,点击获取 简介:《MFC窗口程序设计》源代码教程深入解读了MFC框架如何简化C++在Windows应用开发中的编程工作。该教程详细讲解了MFC的基础概念,如MFC架构、窗口消息处理、文档-视图架构等,并通过实例源代码展现了这些概念在实际开发中的应用,旨在帮助开发者掌握MFC的高级编程技术。 1. MFC架构概念及基介绍 1.1 MF...

weixin_31620365的博客 502

MFC图形化汉诺塔游戏实现

汉诺塔问题是一个经典的递归问题,以其简单易懂的规则和复杂多变的解决方案闻名。问题的核心是将一系列大小不一的盘子从一个塔座移动到另一个塔座上,过程中遵守特定的规则:一次只能移动一个盘子,并且大盘子不能叠在小盘子上面。递归算法在解决汉诺塔问题时提供了一种优雅的解决方案,它将复杂问题分解为更小规模的相同问题,直到达到简单的情况可以轻松解决。MFC库的发展与Visual C++的进化紧密相连。

weixin_30533301的博客 998

《深入浅出MFC第二版》随书源码深入剖析

在这一章节中,我们将揭开MFC(Microsoft Foundation Classes)的神秘面纱,对它的核心概念进行介绍。首先,MFC微软公司为Windows应用程序开发提供的一个C++库框架,它封装了Windows API,使得程序员能够用面向对象的方式进行编程。自定义对话框提供了更多的灵活性,允许开发者创建具有特定功能和外观的对话框。设计对话框资源:使用资源编辑器定义对话框的布局和控件属性。创建对话框:从CDialog派生一个新,并关联到设计好的对话框资源。

weixin_30533301的博客 463

MFC文本编辑器项目解压与分析

MFC(Microsoft Foundation Classes)是一个C++库,它为Windows应用程序开发提供了面向对象的框架。MFC封装了Windows API,使得开发者能够更便捷地利用Windows的应用程序接口。MFC内部包含了丰富的,从简单的窗口控件到复杂的文档/视图架构,为快速开发复杂的桌面应用程序提供了坚实的基础。

weixin_28988985的博客 648

MFC记事本项目VC++源码解析与实践

本文还有配套的精品资源,点击获取 简介:本文详细介绍了MFC记事本项目的VC++源码,强调了MFC库在简化Windows应用开发中的作用,以及该项目在实践中的应用价值。文章首先介绍了MFC框架及其的组织,然后阐述了文档/视图架构的运作,重点讨论了如何使用CWinApp、CFrameWnd、CMDIChildWnd、CFileDialog、CEdit以及如何处理菜单和工具...

weixin_32869687的博客 1360

MFC源代码剖析与应用实战

CWinApp包含许多成员函数,它们负责处理应用程序的启动、运行和关闭。以下是CWinApp中一些关键成员函数的介绍:: 初始化应用程序的实例。这是在应用程序的运行流程中首先调用的函数,用于创建和显示主窗口。: 清理应用程序的实例。在应用程序关闭时调用,用于执行清理工作,如关闭日志文件、保存设置等。: 添加文档模板。文档模板用于定义文档、视图和框架窗口之间的关联。: 在消息循环翻译消息前调用。通常用于处理加速键。: 当应用程序处于空闲状态时调用。

weixin_42376614的博客 1070

VC++MFC程序中的WinMain函数(三)CWinApp的定义(afxwin.h*)CWinThread(afxwin.h)

目录 CWinApp的定义(afxwin.h*): 接上:VC++基于MFC的程序框架剖析(二) CWinApp的定义(afxwin.h*): class CWinApp : public CWinThread { DECLARE_DYNAMIC(CWinApp) public: // Constructor explicit CWinApp(LPCTSTR lpszAppName = NULL); // app name defaults to EXE name // Att

当路danglu0010 1540

Visual C++ 6.0 MFC库参考手册

本文还有配套的精品资源,点击获取 简介:本书是Visual C++ 6.0开发者的宝贵资源,详细介绍了MFC库,包括其结构、设计理念及核心组件。提供了MFC的详细参考,从基础概念到文档/视图架构、控件使用、消息处理机制、数据库访问、DLL管理,以及国际化和异常处理,涵盖了MFC编程的关键方面。包含接口描述、示例代码和实际应用场景,旨在帮助开发者高效使用MFC进行Wind...

weixin_34945060的博客 481
上一篇: MFC架构之CWinThread类
下一篇: MFC之消息映射的实现(1)
FlowShell
博客等级 码龄17年 119粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值