首页 > 文库大全 > 精品范文库 > 3号文库

第1章MFC概述 1

第1章MFC概述 1



第一篇:第1章MFC概述 1

第1章 MFC概述................错误!未定义书签。

1.1 MFC是一个编程框架..........错误!未定义书签。

1.1.1 封装..............错误!未定义书签。

1.1.2 继承..............错误!未定义书签。

1.1.3 虚拟函数和动态约束.......错误!未定义书签。

1.1.4 MFC的宏观框架体系......错误!未定义书签。

1.2 MDI应用程序的构成...........错误!未定义书签。

1.2.1 构成应用程序的对象.......错误!未定义书签。

1.2.2 构成应用程序的对象之间的关系.错误!未定义书签。

1.2.3 构成应用程序的文件.......错误!未定义书签。

第2章 MFC和Win32...............错误!未定义书签。

2.1 MFC Object和Windows Object的关系...错误!未定义书签。

2.2 Windows Object..............错误!未定义书签。

2.2.1 Windows的注册........错误!未定义书签。

2.2.2 MFC窗口类CWnd...........错误!未定义书签。

2.2.3 在MFC下创建一个窗口对象......错误!未定义书签。

2.2.4 MFC窗口的使用.......错误!未定义书签。

2.2.5 在MFC下窗口的销毁...........错误!未定义书签。

2.3 设备描述表.............错误!未定义书签。

2.3.1 设备描述表概述........错误!未定义书签。

2.3.2 设备描述表在MFC中的实现......错误!未定义书签。

2.3.3 MFC设备描述表类的使用.....错误!未定义书签。

2.4 GDI对象..........错误!未定义书签。

第3章 CObject类...............错误!未定义书签。

3.1 CObject的结构..............错误!未定义书签。

3.2 CObject类的特性..........错误!未定义书签。

3.3 实现CObject特性的机制..........错误!未定义书签。

3.3.1 DECLARE_DYNAMIC等宏的定义错误!未定义书签。

3.3.2 CruntimeClass类的结构与功能.....错误!未定义书签。

3.3.3 动态类信息、动态创建的原理.....错误!未定义书签。

3.3.4 序列化的机制............错误!未定义书签。

第4章 消息映射的实现.............错误!未定义书签。

4.1 Windows消息概述........错误!未定义书签。

4.1.1 消息的分类.........错误!未定义书签。

4.1.2 消息结构和消息处理.......错误!未定义书签。

4.2 消息映射的定义和实现.......错误!未定义书签。

4.2.1 MFC处理的三类消息......错误!未定义书签。

4.2.2 MFC消息映射的实现方法.....错误!未定义书签。

4.2.3 在声明与实现的内部.......错误!未定义书签。

4.2.3.1 消息映射声明的解释..........错误!未定义书签。

4.2.3.2 消息映射实现的解释..........错误!未定义书签。

4.2.4 消息映射宏的种类...........错误!未定义书签。

4.3 CcmdTarget类................错误!未定义书签。

4.4 MFC窗口过程...............错误!未定义书签。

4.4.1 MFC窗口过程的指定......错误!未定义书签。

4.4.2 对Windows消息的接收和处理...错误!未定义书签。

4.4.2.1 从窗口过程到消息映射......错误!未定义书签。

4.4.2.2 Windows消息的查找和匹配错误!未定义书签。

4.4.2.3 Windows消息处理函数的调用错误!未定义书签。

4.4.2.4 消息映射机制完成虚拟函数功能的原理错误!未定义书签。

4.4.3 对命令消息的接收和处理......错误!未定义书签。

4.4.3.1 MFC标准命令消息的发送.错误!未定义书签。

4.4.3.2 命令消息的派发和消息的多次处理错误!未定义书签。

4.4.3.3 一些消息处理类的OnCmdMsg的实现错误!未定义书签。

4.4.3.4 一些消息处理类的OnCommand的实现错误!未定义书签。

4.4.4 对控制通知消息的接收和处理.....错误!未定义书签。

4.4.4.1 WM_COMMAND控制通知消息的处理错误!未定义书签。

4.4.4.2 WM_NOTIFY消息及其处理:错误!未定义书签。

4.4.4.3 消息反射.........错误!未定义书签。

4.4.5 对更新命令的接收和处理......错误!未定义书签。

4.4.5.1 实现方法.........错误!未定义书签。

4.4.5.2 状态更新命令消息.......错误!未定义书签。

4.4.5.3 类CCmdUI.....错误!未定义书签。

4.4.5.4 自动更新用户接口对象状态的机制错误!未定义书签。

4.5 消息的预处理................错误!未定义书签。

4.6 MFC消息映射的回顾..........错误!未定义书签。

第5章 MFC对象的创建...........错误!未定义书签。

5.1 MFC对象的关系...........错误!未定义书签。

5.1.1 创建关系.............错误!未定义书签。

5.1.2 交互作用关系............错误!未定义书签。

5.2 MFC提供的接口...........错误!未定义书签。

5.2.1 虚拟函数接口............错误!未定义书签。

5.2.2 消息映射方法和标准命令消息.....错误!未定义书签。

5.3 MFC对象的创建过程..........错误!未定义书签。

5.3.1 应用程序中典型对象的结构.........错误!未定义书签。

5.3.1.1 应用程序类的成员变量......错误!未定义书签。

5.3.1.2 CDocument的成员变量......错误!未定义书签。

5.3.1.3 文档模板的属性...........错误!未定义书签。

5.3.2 WinMain入口函数...........错误!未定义书签。

5.3.2.1 WinMain流程........错误!未定义书签。

5.3.2.2 MFC空闲处理.......错误!未定义书签。

5.3.3 SDI应用程序的对象创建.......错误!未定义书签。

5.3.3.1 文档模板的创建...........错误!未定义书签。

5.3.3.2 文件的创建或者打开..........错误!未定义书签。

5.3.3.3 SDI边框窗口的创建...........错误!未定义书签。

5.3.3.4 视的创建.........错误!未定义书签。

5.3.3.5 窗口初始化.....错误!未定义书签。

5.3.3.6 视的初始化.....错误!未定义书签。

5.3.3.7 激活边框窗口(处理WM_ACTIVE)错误!未定义书签。

5.3.3.8 SDI流程的回顾.....错误!未定义书签。

5.3.4 MDI程序的对象创建.......错误!未定义书签。

5.3.4.1 有别于SDI的主窗口加载过程错误!未定义书签。

5.3.4.2 MDI子窗口、视、文档的创建错误!未定义书签。

5.3.4.3 MDI子窗口的初始化和窗口的激活错误!未定义书签。

第6章 应用程序的退出.............错误!未定义书签。

6.1 边框窗口对WM_CLOSE的处理.....错误!未定义书签。

6.2 窗口的销毁过程............错误!未定义书签。

6.2.1 DestroyWindow..........错误!未定义书签。

6.2.2 处理WM_DESTROY消息...........错误!未定义书签。

6.2.3 处理WM_NCDESTROY消息......错误!未定义书签。

6.3 SDI窗口、MDI主、子窗口的关闭.........错误!未定义书签。

第7章 MFC的DLL...........错误!未定义书签。

7.1 DLL的背景知识............错误!未定义书签。

7.2 调用约定..........错误!未定义书签。

7.2.1 MFC的DLL应用程序的类型.......错误!未定义书签。

7.3 DLL的几点说明............错误!未定义书签。

7.4 输出函数的方法............错误!未定义书签。

第8章 MFC的进程和线程..............错误!未定义书签。

8.1 Win32的进程和线程概念...........错误!未定义书签。

8.2 Win32的进程处理简介........错误!未定义书签。

8.2.1 进程的创建.........错误!未定义书签。

8.2.2 进程的终止.........错误!未定义书签。

8.3 Win32的线程..........错误!未定义书签。

8.3.1 线程的创建.........错误!未定义书签。

8.3.2 线程的终止.........错误!未定义书签。

8.3.3 线程局部存储............错误!未定义书签。

8.4 线程同步..........错误!未定义书签。

8.4.1 同步对象.............错误!未定义书签。

8.4.2 等待函数.............错误!未定义书签。

8.5 MFC的线程处理...........错误!未定义书签。

8.5.1 创建用户界面线程...........错误!未定义书签。

8.5.2 创建工作者线程........错误!未定义书签。

8.5.3 AfxBeginThread..........错误!未定义书签。

8.5.4 CreateThread和_AfxThreadEntry...错误!未定义书签。

8.5.5 线程的结束.........错误!未定义书签。

8.5.6 实现线程的消息循环.......错误!未定义书签。

第9章 MFC的状态............错误!未定义书签。

9.1 模块状态..........错误!未定义书签。

9.2 模块、进程和线程状态的数据结构........错误!未定义书签。

9.2.1 层次关系.............错误!未定义书签。

9.2.2 CNoTrackObject类...........错误!未定义书签。

9.2.3 AFX_MODULE_STATE类...........错误!未定义书签。

9.2.4 _AFX_BASE_MODULE_STATE..错误!未定义书签。

9.2.5 _AFX_THREAD_STATE........错误!未定义书签。

9.2.6 AFX_MODULE_THREAD_STATE错误!未定义书签。

9.3 线程局部存储机制和状态的实现.....错误!未定义书签。

9.3.1 CThreadSlotData和_afxThreadData错误!未定义书签。

9.3.1.1 CThreadSlotData的定义......错误!未定义书签。

9.3.1.2 CThreadSlotData的一些数据成员错误!未定义书签。

9.3.1.3 _afxThreadData.......错误!未定义书签。

9.3.2 线程状态_afxThreadState.......错误!未定义书签。

9.3.3 进程模块状态afxBaseModuleState错误!未定义书签。

9.3.4 状态对象的创建........错误!未定义书签。

9.3.4.1 状态对象的创建过程..........错误!未定义书签。

9.3.4.2 创建过程所涉及的几个重要函数的算法错误!未定义书签。

9.4 管理状态..........错误!未定义书签。

9.4.1 模块状态切换............错误!未定义书签。

9.4.2 扩展DLL的模块状态.....错误!未定义书签。

9.4.2.1 _AFX_EXTENSION_MODULE错误!未定义书签。

9.4.2.2 扩展DLL的初始化函数....错误!未定义书签。

9.4.3 核心MFC DLL.........错误!未定义书签。

9.4.4 动态链接的规则DLL的模块状态的实现错误!未定义书签。

9.5 状态信息的作用............错误!未定义书签。

9.5.1.1 模块信息的保存和管理......错误!未定义书签。

9.5.2 MFC资源、运行类信息的查找....错误!未定义书签。

9.5.3 模块信息的显示........错误!未定义书签。

9.5.4 模块-线程状态的作用.....错误!未定义书签。

9.5.4.1 只能访问本线程MFC对象的原因错误!未定义书签。

9.5.4.2 实现MFC对象和Windows对象之间的映射错误!未定义书签。

9.5.4.3 临时对象的处理...........错误!未定义书签。

9.6 状态对象的删除和销毁.......错误!未定义书签。

第10章 内存分配方式和调试机制.........错误!未定义书签。

10.1 M内存分配...........错误!未定义书签。

10.1.1 内存分配函数..........错误!未定义书签。

10.1.2 C++的new 和 delete操作符......错误!未定义书签。

10.2 调试手段...............错误!未定义书签。

10.2.1 C运行库提供和支持的调试功能 错误!未定义书签。

10.2.2 MFC提供的调试手段...........错误!未定义书签。

10.2.3 内存诊断...........错误!未定义书签。

第11章 MFC下的文件类.........错误!未定义书签。

11.1 文件操作的方法..........错误!未定义书签。11.2 MFC的文件类.............错误!未定义书签。

11.2.1 CFile的结构.............错误!未定义书签。

11.2.1.1 CFile定义的枚举类型.......错误!未定义书签。

11.2.1.2 CFile的其他一些成员变量 错误!未定义书签。

11.2.1.3 CFile的成员函数........错误!未定义书签。

11.2.2 CFile的部分实现.....错误!未定义书签。11.2.3 CFile的派生类.........错误!未定义书签。

第12章 对话框和对话框类CDialog......错误!未定义书签。

12.1 模式和无模式对话框.........错误!未定义书签。

12.1.1 模式对话框..............错误!未定义书签。12.1.2 无模式对话框..........错误!未定义书签。12.2 对话框的MFC实现..........错误!未定义书签。

12.2.1 CDialog的设计和实现..........错误!未定义书签。

12.2.1.1 CDialog的成员变量..........错误!未定义书签。

12.2.1.2 CDialog的成员函数:......错误!未定义书签。

12.2.2 MFC模式对话框的实现.......错误!未定义书签。

12.2.2.1 MFC对话框过程........错误!未定义书签。

12.2.2.2 模式对话框窗口过程........错误!未定义书签。

12.2.2.3 使用原对话框窗口过程作消息的缺省处理错误!未定义书签。12.2.2.4 Dialog命令消息和控制通知消息的处理错误!未定义书签。12.2.2.5 消息预处理和Dialog消息 错误!未定义书签。

12.2.2.6 模式对话框的消息循环....错误!未定义书签。

12.2.3 对话框的数据交换.........错误!未定义书签。

12.2.3.1 数据交换的方法.........错误!未定义书签。

12.2.3.2 CDataExchange.....错误!未定义书签。

12.2.3.3 数据交换和验证函数........错误!未定义书签。

12.2.3.4 UpdateData函数..........错误!未定义书签。

12.3 无模式对话框..............错误!未定义书签。

12.3.1 CScrollView..............错误!未定义书签。12.3.2 CFormView........错误!未定义书签。

12.3.2.1 CFormView的创建.....错误!未定义书签。

12.3.2.2 CFormView的消息预处理 错误!未定义书签。

12.3.2.3 CFormView的输入焦点....错误!未定义书签。

第13章 MFC工具条和状态栏........错误!未定义书签。

13.1 Windows控制窗口.............错误!未定义书签。13.2 MFC的工具条和状态栏类.......错误!未定义书签。

13.2.1 控制窗口的创建......错误!未定义书签。

13.2.1.1 PreCreateWindow........错误!未定义书签。

13.2.1.2 控制条的窗口创建.....错误!未定义书签。

13.2.2 控制条的销毁..........错误!未定义书签。13.2.3 处理控制条的位置.........错误!未定义书签。

13.2.3.1 计算控制条位置的过程和算法错误!未定义书签。

13.2.3.2 CFrameWnd的虚拟函数RecalcLayout错误!未定义书签。13.2.3.3 CWnd的成员函数RepositionBars错误!未定义书签。13.2.4 工具条、状态栏和边框窗口的接口错误!未定义书签。

13.2.4.1 应用程序在状态栏中显示信息错误!未定义书签。13.2.4.2 状态栏显示菜单项的提示信息错误!未定义书签。13.2.4.3 控制条的消息分发处理....错误!未定义书签。

13.2.4.4 Tooltip............错误!未定义书签。

13.2.4.5 禁止和允许..........错误!未定义书签。

13.2.4.6 显示或者隐藏工具栏和状态栏错误!未定义书签。13.2.5 泊位和漂浮..............错误!未定义书签。

第14章 SOCKET类的设计和实现........错误!未定义书签。

14.1 WinSock基本知识..............错误!未定义书签。

14.1.1 WinSock API............错误!未定义书签。14.1.2 Socket的使用...........错误!未定义书签。14.2 MFC对WinSockt API的封装.........错误!未定义书签。

14.2.1 CAsyncSocket...........错误!未定义书签。14.2.2 socket对象的创建和捆绑......错误!未定义书签。14.2.3 异步网络事件的处理.....错误!未定义书签。14.3 CSocket...........错误!未定义书签。14.4 CSocketFile............错误!未定义书签。

第二篇:什么是MFC

什么是MFC

来源:KeyLife富翁笔记 时间: 2005-11-30 16:34:00浏览: 2192 次 评论: 9 篇

MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC++只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WS,PlatForm,这跟Pascal和Dephi的关系一个道理,Pascal是Dephi的语言基础,Dephi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面对对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC++集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的..MFC是Win API与C++的结合,API,即微软提供的WinOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能在WinOS下运行,比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinOS作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多内节程序开发人员在Win下用C++ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的..最后要明白MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在WinOS(用MFC编写的程序绝大部分都在WinOS中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C++和MFC的学习中最难的部分是指针,C++面向对像程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C++版..

第三篇:MFC个人心得

MFC个人心得

在四周时间里完成一个MFC的一个项目,个人觉得还是比较宽裕的,我们在第一周确立了项目的软件功能和名称,我们借鉴手机上RSS软件的广泛应用,想要通过MFC编写一个PC端的RSS应用,用户可以通过我们的软件获取到各大网站的新闻,科技精选,人文精选等等,总之,就是可以通过我们的软件得到每天想要获得资讯消息。

之后我们确定了各小组成员在整个团队中的分工。想要完成这样一个RSS软件的开发,思路还是比较明确的,首先要通过后台获取到各大资讯网站的网页源代码,再从这些源代码中间解析出有用的信息,之后将这些信息传递给前台,前台通过一个友好的界面将信息有条有序的展现给用户。我的主要工作就是开发后台,通过解析HTML代码获取各类资讯。由于先前我在Java平台下对于HTML解析的开发有一定的经验,所以我着手开始编写程序是的第一件事就是搜索看是否有已经写好的解析HTML的C++类库,经过我两天的搜索,我发现在C++环境下并没有比较完好的HTML解析类库,于是我暂时放弃了寻找现成的HTML解析类库,通过MFC中的CSting类中的函数操作来自己编写HTML解析类库。我采用DOM型的方式解析HTML,通过两天时间的编写基本实现了HTML的解析功能并且获取了大量网站的有用信息。由

于要求写在参与MFC项目的心得体会,我就贴上具体的C++代码了。在编写程序的过程中,我还是觉得一个优秀的程序员在于提升代码的重用性与可维护性,在理解别人代码的基础上使用网上现有代码是一个比较好的习惯,这样既能够了解其他人在编写程序时的思路理解,开拓自己的编程理念,同时也大量节省了时间,时间的优秀使用在编写程序的过程中是极其重要的。

另外,在编写MFC程序的过程中我也着实体验到了MFC编写程序的局限性。MFC虽然给开发者提供了一个现成的框架,着实便利的开发者的开发。但同样也造成了一个巨大的问题,开发者很难开发出具有个人特色的软件,想要重新改写程序整体的外观就比较困难,并且C++在编写程序时需要开发者自己定义变量的空间开辟和回收,这点上没有JAVA开发时来的方便,尤其是C++当中的指针机制,一不注意还是很容易造成程序错误的。

最后一点就是一个团队在一个项目中的重要意义。如果这样一个软件完全由我一个人进行开发,可能需要耗费大量时间,但是如果合理地分配给各个组员进行完成,便能取得事半功倍的效果,亦能听取各方面的意见,是的程序更加的完善。

第四篇:Mfc个人心得体会

Mfc个人心得体会

06a13526

余思远

时间过得很快,历时一个月的短学期即将结束,我们小组的mfc课题也基本完成。虽然只有短短的一个月,但却带给我很多。在小组成员的共同努力下,基本解决了计划中的一个个问题,要实现一个功能并不算复杂的计算器,也没有想象中那么简单。

Mfc涉及的概念很多,语法也与以前有些许不同,在c++基础上新增的内容也有许多。从开始编辑一个简单的界面,通过这段时间的学习,终于感到掌握了些许了,但想更加熟练的使用,也必须付出更多的时间吧。我发现在编程过程中,并不能只想着眼前所负责的这一块,许多对许多综合多方面进行考虑,需要与自己队友进行配合,作出合理的计划和安排。

实践是检验真理的唯一标准,这次mfc的实践活动,让我学习到了很多知识,弥补了很多漏洞。这个看似简单对我们来说却付出了很多时间和精力的程序,让我体会到了mfc相比与单纯的c++的优越性。程序编译过程中的有些困难虽然我们的能力范围内也无法解决,但是在网上资料的参考,读懂他人资料、相关程序的基础上,我们也完成了这个程序。相信这个经历能对以后的编程有很大的帮助。我也从此次课程设计中体会到了团队合作的乐趣和力量。在一个团队中扬长避短,发挥自己应有的作用,能让我们更加容易地去克服一个又一个难关。

第五篇:MFC编程学习心得

//

1、将C语言变量简单重新定义 UINT、INT(32位,4字节)

LONG、DWORD(32位,4字节)WPARAM、LPARAM(32位,4字节)SHORT、WORD(16位,2字节)LONG、LRESULT BOOL(TRUE、FALSE)PINT

PSTR、LPSTR、LPCSTR(字符串指针,只读和可写)

//

2、H开头,Windows句柄类型变量 HANDLE of Windows =>HWND HANDLE of Instance =>HINSTANCE HANDLE of Icon =>HICON

//3结构体类型

SIZE、POINT、RECT

MFC所有封装类一共有200多个,但是MFC的内部技术不只是简单地封装。MFC内部总共有六大关键技术,构架起了整个MFC开发平台。

一、MFC的六大关键技术包括: a)MFC程序的初始化过程: b)消息映射机制;

c)运行时类型识别(RTTI); d)动态创建; e)永久保存; f)消息传递;

六大关键技术的目的是为了提高开发效率,开发者只需要在局部做简单的修改,即可处理大部分窗口事物。

二、SendMessage和PostMessage函数的功能:

a)能够向指定的窗口内发送窗口消息,既可以是本进程内窗口也可以是其他进程的; b)既可以发送系统内部消息,消息编号的范围是:1-WM_USER-1; 例如:WM_LBUTTONDONW,WM_MOUSEMOVE等; c)也可以发送非系统消息(开发者定义的消息),范围是WM_USER-0x7FFF。

三、SendMessage和PostMessage两个函数的区别是:

a)SendMessage是阻塞型函数,PostMessage是非阻塞型函数:

SendMessage用于调用指定窗口的内部程序,直到窗口程序处理完成以后再返回: PostMessage是将一个消息寄送到一个窗口内的消息队列后就立即返回。b)两个函数的返回值不同:

LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM,lParam);BOOL PostMessage(HWND hWnd,UNIT Msg,WPARAM wParam,LPARAM,lParam);SendMessage的返回值依赖于消息处理函数

c)跨线程或者跨进程发送消息,推荐使用PostMessage函数。

一、更具主窗口类型,MFC软件工程可以分为以下几种构架模型:

1、SDI(Single Document Interface):单文档界面,一个主框架窗口下只能编辑一份文档。例如:记事本和画笔等。

2、MDI(Multiple Document Interface):多文档界面,一个主框架窗口下可以同时编辑多份文档。

例如:VC++6.0,Photoshop等软件。

3、基于对话框的软件模型:主窗口是通过资源管理器,在对话框模板内摆放控件编辑而成的。

多数用于开发小规模软件,例如:任务管理器。

4、其他自定义窗口做主窗口:主窗口既不是框架也不是对话框,而是直接开发通用窗口类CWind而成。

例如:输入法窗口、QQ和360软件等,有时这类软件都可以使用框架和对话框模式来代替开发而成。

对话框常用消息映射函数:

二、对话框初始化消息:

1、WM_CREATE:通用窗口初始化消息

窗口还未显示出来,只有父窗口,子窗口还没创建

2、WM_INITDIALOG:对话框窗口专用消息

子窗口已经全部创建完成,可以调用和操作子窗口

三、对话框关闭过程消息:

1、WM_SYSCOMMAND:管理所有系统菜单和系统按钮消息 包括通过最大化、最小化、移动、大小和关闭等

2、WM_CLOSE:是WM_SYSCOMMAND消息的一个专用关闭的分支 再次消息处理过程可以取消本次关闭任务

3、IDCANCEL按钮消息:不但用于按钮回调消息,也是系统按钮关闭窗口的回调 执行真正关闭对话框函数是EndDialog,在此消息处理过程可以取消本次关闭任务

4、WM_DESTROY:通用窗口销毁消息

窗口已经在屏幕中消失了,但是自身窗口和窗口内的控件都还可以调用 在此消息处理过程可以取消本次关闭任务

四、非模式对话框:

1、在调用EndDialog函数关闭时,非模式对话框只是隐藏没有真正关闭;

2、在调用DestroyWindow函数关闭时,只是隐藏没有真正关闭;

3、DestroyWindow函数是通用摧毁窗口的函数,适用于对话框、控件、框架和视图等。

一个MFC软件工程由至少一个CWind派生类和一个CWinApp派生类,因此这两个类是MFC工程中最重要的两个类。

一、CWind成员函数:主要就是一个核心成员变量m_hWnd。

1、DestroyWindow:摧毁窗口。

2、Create和CreateEx:创建窗口,CreateEx创建时可以指定扩展风格。

3、获取窗口句柄:

a)pWnd->m_hWnd:直接调用前最好判断一下指针是否为空。b)operator HWND():自动类型转换,将对象转换为句柄。

c)GetSafeHwnd():可以避免的a方法,因为指针为空造成软件崩溃。

4、由句柄转化为CWnd对象:

a)CWnd::FromHandle:生成一个临时性窗口类指针

b)Attach和Detach:为一个CWnd对象嫁接和移除窗口句柄; c)SubclassWindow和UnsubclassWindow:子类化和反子类化; d)SubclassDlgItem:子类化指定ID对应的控件窗口。

5、获取和设置窗口信息:

a)GetWindowText和SetWindowText:获取和设置窗口的标题文字。b)GetStyle和ModifyStyle:获取和设置窗口的基础风格。c)GetExStyle和ModifyStyleEx:获取和设置窗口的扩展风格。

6、计时器: a)SetTimer: b)KillTimer:

7、窗口操作: a)ShowWindow: b)EnableWindow: c)MoveWindow: d)CenterWindow:

二、CWinApp类成员变量:

三、CWinApp类成员函数:

//匈牙利命名法: //变量:

int long定义:int nSel;long nTel HANDLE hInst;CString szName,szPass;CString strAddr;LPCSTR pszName;DWORD dwID;//如果是成员变量,以“m_”开头 //如果是全局变量,以“g_”开头

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.feisuxs.com/wenku/jingpin/3/1473902.html

相关内容

热门阅读

最新更新

随机推荐