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. python 多线程批量传文件

    #!/usr/bin/env python #_*_ coding:utf-8 -*-#autho:leiyong#time:2017-06-05#version: 1.3 import parami ...

  2. get和post与服务端的交互方式

    在网上看了不少关于get和post的文章,看到博主这个,现在手录下来. 原博客地址:http://www.cnblogs.com/warrior4236/p/5675756.html 一:B/S结构, ...

  3. 这次真的忽略了一些ActiveMQ内心的娇艳

    好久没总结了,内心有点空虚了,所以今天主要给园里的朋友们分享一点儿这几天使用ActiveMQ过程中踩过的小坑,虽然说这东西简单易用,代码几行配置也就几行,问题不大但是后果有点严重,所以就要必要总结一下 ...

  4. 泛型里的super和extend

    <? extends T>和<? super T>应该怎么用? 网上看到一些比较难懂的回答,但是在EffectiveJava(2th Edition)遇到简单明了的解释: If ...

  5. 关于Mybatis的一次pingQuery时间间隔的实践及思考

    转眼间离这次问题的实践过程已经过去了一两个月了,现在想来自己的问题并不是不知道那么简单了,所以很有必要记录下来,算是一次警戒吧 废话不多说,直入主题. 我的直接上级准备将公司的后台管理系统由PHP转为 ...

  6. Linux下执行ls命令提示CMake Error错误

    一.系统环境 Fedora10 二.出错情况 执行ls命令出现如下错误提示: CMake Error: The source directory "/etc/--color=auto&quo ...

  7. 跨域请求cookie获取与设置问题

    描述:最近做项目遇到了cookie的问题,项目为前后端分离项目,前台有分外网IP(A外)和内网IP(A内),后台服务只有一个内网IP(B内). 现象:当我前台异步请求发送给后台的时候,后台并不能获取到 ...

  8. IPv6 VS IPv4,谈谈升级 IPv6 的必要性

    11月26日,中办.国办印发了<推进互联网协议第六版(IPv6)规模部署行动计划>,提出国内要在 5~10 年的时间形成下一代互联网自主技术体系和产业生态,建成全球最大规模的 IPv6 商 ...

  9. C#检测获取移动硬盘盘符

    最近做一个小工具,  C# 对 移动硬盘的检测, var arr = DriveInfo.GetDrives(); 得出的所有磁盘,发现对于移动硬盘,DriveType 不是 Removable 类型 ...

  10. 条件注释判断IE版本

    在学习Bootstra的时候看到这么一句话, <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media ...