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命令

MFC学习之CWinApp类的更多相关文章

  1. MFC 学习笔记

    MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...

  2. MFC学习-第2,3课 MFC框架的运行机制

    转自:http://blog.163.com/zhigang0633@126/blog/static/38790491200822711526168/ 讲述MFC AppWizard的原理与MFC程序 ...

  3. MFC中的CString类使用方法指南

    MFC中的CString类使用方法指南 原文出处:codeproject:CString Management [禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助.我们在MFC中使用字符 ...

  4. MFC学习(三):项目学习

    1. 概述 MFC程序由CWinApp.MainFrm(含Menu,可用CSplitterWndEx分割).众多Dialog等组成. MFC既可以使用纯Dialog的形式,也可以使用Document+ ...

  5. MFC学习(五)常见面试题

    1:应用程序类 CTestOneApp::InitInstance 可以看做是MFC程序的入口函数,main函数隐藏在这个函数中.实际开发中一般不需要对这个类进行操作,但如果要在建立主对话框之前处理一 ...

  6. MFC学习(三)程序入口和执行流程

    1) WIN32 API程序当中,程序入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序窗口函数.而在MFC程序当中我们 ...

  7. MFC学习笔记1---准备工作

    什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. 孙鑫MFC学习笔记12:文件读写

    1.指向常量的指针 2.指针常量 3.C语言对文件操作是在缓冲区,在缓冲区满或文件关闭时写入文件 读取相同 4.fflush刷新缓冲区,使缓冲区数据写入文件 5.fseek改变文件指针偏移量 6.st ...

随机推荐

  1. 直接调用VS.net2005中的配置界面

    以前做Winform程序,居然专门做一个界面来配置连接字符串.今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理. 使用方法也非常简单: 引用C:\Program Files\Mi ...

  2. [转载] ZooKeeper实现分布式队列Queue

    转载自http://blog.fens.me/zookeeper-queue/ 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户 ...

  3. CSharpGL(47)你好,Framebuffer!

    CSharpGL(47)你好,Framebuffer! Framebuffer对象(FBO)是一种复杂的OpenGL对象.使用自定义的framebuffer,可以实现离屏渲染,进而实现很多高级功能,例 ...

  4. PAM - 可插拔认证模块

    1.为什么要使用PAM 为了让用户更合理地使用系统,应用程序或服务(如sshd.login.su.password.ftp等)不可避免地需要对用户进行安全认证,若按照各自的规则去配置非常耗费时间和精力 ...

  5. 《java.util.concurrent 包源码阅读》25 Fork/Join框架之Fork与Work-Stealing(重写23,24)

    在写前面两篇文章23和24的时候自己有很多细节搞得不是很明白,这篇文章把Fork和Work-Stealing相关的源代码重新梳理一下. 首先来看一些线程池定义的成员变量: 关于scanGuard: v ...

  6. Pyhton编程(六)之基本数据类型-集合(补充)

    集合(set) 集合其实就是一个无序的,自动去重的数据集合,它主要的作用是用来去重和进行关系测试,集合的定义方法如下: name=set("czp") /name=set({1,2 ...

  7. MySql的简单数据类型区别与认识

    date     3字节,日期,格式:2014-09-18time     3字节,时间,格式:08:42:30datetime     8字节,日期时间,格式:2014-09-18 08:42:30 ...

  8. Sonar常见问题分析

    1.Equality tests should not be made with floating point value 代码举例: if (result == num) //result和num均 ...

  9. [C#]使用Label标签控件模拟窗体标题的移动

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以 ...

  10. OpenCASCADE 参数曲线曲面面积

    OpenCASCADE 参数曲线曲面面积 eryar@163.com Abstract. 本文介绍了参数曲面的第一基本公式,并应用曲面的第一基本公式,结合OpenCASCADE中计算多重积分的类,对任 ...