第十一章 MFC程序设计-集合类PPT教学课件

合集下载

C课程设计MFC

C课程设计MFC

Electron:基于Web技术,提供丰富的 控件和功能,易于学习和使用
MFC在新技术下的应用和发展趋势
云计算:MFC可以应用于云计算平台,提供分布式计算和存储能力 大数据:MFC可以应用于大数据处理和分析,提高数据处理效率和准确性 人工智能:MFC可以应用于人工智能领域,提供智能决策和预测能力 物联网:MFC可以应用于物联网设备,实现设备间的互联互通和智能控制
单击此处添加标题
跨平台:MFC支持Wi 可以方便地在不同平台上进行开发。
MFC框架结构
MFC框架的组成
视图框架:提供用户界面 和交互功能
文档/视图框架:提供文档 和视图的管理和操作功能
模板框架:提供模板和模 板类的管理功能
应用程序框架:提供应 用程序的基本结构和功
THANK YOU
汇报人:
CView类:用于视图操作,如绘制、刷 新、滚动等
CWnd类:用于窗口操作,如创建、销 毁、显示等
CWinApp类:用于应用程序操作,如初 始化、运行、退出等
CDocument类:用于文档操作,如打开、 CFrameWnd类:用于框架窗口操作,
保存、打印等
如创建、销毁、显示等
MFC类库的扩展和定制
MFC支持多种编程模式,如事件驱动、消息映射、文档/视图等
MFC支持多种开发环境,如Visual C++、Visual Studio等
MFC的发展历程
• 1992年,Microsoft推出MFC 1.0,作为Windows 3.1的C++编程框架 • 1993年,MFC 2.0发布,支持Windows 3.11和Windows NT 3.5 • 1994年,MFC 3.0发布,支持Windows 95和Windows NT 4.0 • 1996年,MFC 4.0发布,支持Windows 95和Windows NT 4.0 • 1998年,MFC 6.0发布,支持Windows 98和Windows NT 4.0 • 2001年,MFC 7.0发布,支持Windows 2000和Windows XP • 2003年,MFC 8.0发布,支持Windows XP和Windows Server 2003 • 2005年,MFC 9.0发布,支持Windows Vista和Windows Server 2008 • 2008年,MFC 10.0发布,支持Windows 7和Windows Server 2008 R2 • 2012年,MFC 11.0发布,支持Windows 8和Windows Server 2012 • 2015年,MFC 12.0发布,支持Windows 10和Windows Server 2016 • 2017年,MFC 14.0发布,支持Windows 10和Windows Server 2016 • 2019年,MFC 14.2发布,支持Windows 10和Windows Server 2019 • 2021年,MFC 14.3发布,支持Windows 10和Windows Server 2022

第11章MFC程序设计PPT教学课件

第11章MFC程序设计PPT教学课件
功用: Class Library、GUI toolkit
2020/12/10
3
MFC(Microsoft Foundation Classes)
C++版的Microsoft windows API MFC类包括以下几个群组:
– General Purpose classes – Windows API classes – Application Framework classes – High level abstractions – Operation system extentions
功能
2020/12/10
10
3.图形类
Windows引入了一个名为图形设备接口 (GDI)的抽象层。Windows提供视频和 打印机驱动程序,所以,应用程序不必 知道系统连接的显卡和打印机的类型。 程序不是寻址硬件,而是调用GDI函数, 这些函数引用名为设备环境的数据结构。
每一个C++设备环境对象有一个相关的 Windows设备环境,它由一个32位的 HDC类型句柄来进行标识。
2020/12/10
说明 封装了Windows中的设备环境,提 供成员函数操作的设备环境 构造与窗口中客户区域相关的设备
构造响应WM_PAINT消息使用的设
实现对WindowsGDI中画刷的封装 实现对WindowsGDI中画笔的封装 实现对WindowsGDI中字体的封装
13
MFC程序常用头文件
CEditView
具有编辑功能的视图类
CDialog
对话框基类
CButton
文本编辑框类
2020/12/10
9
2.程序结构类
类名 CWinApp

mfc 教程

mfc 教程

mfc 教程MFC(Microsoft Foundation Classes)是一种用于开发Windows应用程序的C++框架,由Microsoft推出。

它提供了一系列的类和函数,简化了Windows编程的复杂性,使开发人员可以更轻松地创建各种功能强大且交互性良好的应用程序。

MFC教程的目的是帮助初学者了解MFC的基本概念和使用方法,以便能够利用MFC框架开发自己的Windows应用程序。

本教程将介绍MFC的主要组成部分、常用类以及一些常见的编程技巧,帮助读者快速上手。

第一部分将介绍MFC的基本概念和架构。

我们将了解MFC是如何工作的,包括应用程序对象、文档/视图体系结构和消息映射等主要概念。

我们还将学习如何创建一个简单的MFC应用程序,并进行窗口的创建和管理。

第二部分将深入介绍MFC的常用类。

我们将重点介绍窗口类和控件类,包括CWnd、CFrameWnd、CDialog、CButton等。

我们将学习如何使用这些类创建窗口、控件,并处理用户输入事件。

我们还将讨论一些常见的绘图和动画技术,如GDI绘图和使用定时器实现动画效果。

第三部分将介绍MFC的高级特性和编程技巧。

我们将学习如何使用MFC的文档/视图体系结构创建多文档应用程序,并进行文档的管理和视图的同步更新。

我们还将介绍如何通过自定义类和重载消息处理函数来实现定制化的功能。

此外,我们还将讨论一些高级主题,如线程编程和网络编程。

最后,本教程还将介绍一些常见的MFC开发工具和资源。

我们将介绍MFC的IDE(集成开发环境)和调试工具,并提供一些常用的网站和论坛供读者进一步学习和交流。

总结起来,本教程将帮助读者掌握MFC的基本概念和编程技巧,并能够利用MFC框架开发自己的Windows应用程序。

我们将通过实例和演示代码来讲解,帮助读者理解和应用所学知识。

阅读本教程后,读者将具备一定的MFC编程基础,并能够进一步深入研究和应用MFC框架。

希望本教程能够对MFC初学者有所帮助,让他们更加轻松地学习和掌握MFC编程。

mfc课程设计csdn

mfc课程设计csdn

mfc 课程设计 csdn一、教学目标本课程的教学目标是使学生掌握MFC(Microsoft Foundation Classes)的基本概念、原理和方法,能够运用MFC进行Windows应用程序的开发。

具体目标如下:1.了解MFC的起源、发展和特点。

2.掌握MFC的基本类和常用函数。

3.理解MFC的消息机制和事件处理。

4.熟悉MFC的界面设计和布局。

5.能够使用MFC进行Windows应用程序的界面设计。

6.能够编写MFC应用程序的逻辑代码。

7.能够调试和优化MFC应用程序。

8.能够阅读和理解MFC相关的文档和资料。

情感态度价值观目标:1.培养学生的编程兴趣和自信心。

2.培养学生的团队合作和沟通能力。

3.培养学生的问题解决和创新能力。

二、教学内容本课程的教学内容主要包括MFC的基本概念、原理和方法,以及Windows应用程序的开发流程。

具体内容包括以下几个方面:1.MFC的起源和发展:介绍MFC的历史背景和发展过程,以及MFC的特点和优势。

2.MFC的基本类和常用函数:介绍MFC中的基本类和常用函数,如CCreateContext、CDocument、CView等,并讲解它们的使用方法和注意事项。

3.MFC的消息机制和事件处理:讲解MFC的消息机制和事件处理流程,包括消息映射、消息处理函数和事件处理函数的编写。

4.MFC的界面设计和布局:介绍MFC的界面设计和布局方法,如使用MFC的布局管理器和自定义控件进行界面布局和设计。

5.MFC应用程序的开发流程:讲解MFC应用程序的开发流程,包括创建项目、添加类和成员函数、编写逻辑代码、编译和调试等步骤。

三、教学方法本课程的教学方法采用讲授法、案例分析法和实验法相结合的方式进行教学。

具体方法如下:1.讲授法:通过讲解和演示的方式,向学生传授MFC的基本概念、原理和方法,以及Windows应用程序的开发流程。

2.案例分析法:通过分析典型的MFC应用程序案例,让学生了解和掌握MFC的应用方法和技巧。

《MFC系列教程》PPT课件

《MFC系列教程》PPT课件
22
CObjeck
各类结构图
CCmdTarget
命令消息目标类
CDocument 线程类
CObject
CCmdTarget CWnd
CFrameWnd
CObject CCmdTarget
CWinThreat CWinApp
CObject CCmdTarget
CWnd
23
CView
文档类主要管理应用程序中的数据。不管理物理磁盘输入输 出。
文件: DrawView.h
DrawView.cpp
视图类主要管理应用程序中的视图窗口,显示文档类的数据.
功能:显示文档类的数据,处理用户输入,管理窗口,实现图
形系统时,屏上显示,打印机上打印图形。
函数:
获得文档指针的函数 GetDocument ( )
绘图函数
OnDraw ( )
修改窗口函数
PreCreateWindow( )
Ⅰ. MFC概述
MFC是用来编写应用程序的C++类集,该类集以层次结构组 织起来,其中封装了大部分API函数与控件,功能包含整个系统, 提供了丰富的图形环境下的框架。
2
1. MFC 发展过程 1992年 MFC1.0应用程序中非图形的类和应用程序图形用户 界面类。 1993年 MFC2.0增加了一些构造类。 1993年 MFC2.5增加数据库类、基于16位应用程序。 1994年 MFC3.0增加开发32位应用程序的类,提供了丰富的用户 界面程序支持。 1994年 MFC4.0增加新的控件,支持OLE(对象连接嵌入)类扩展 功能。实现网络通信程序的编写。提供了MAPI接口,开发邮件、消 息处理的应用程序。 1997年 MFC4.21增强了对数据库程序的支持,出现了 visual c+3 +5.0

MFC原理(PPT)

MFC原理(PPT)

采用MFC编程的优点: 编程的优点: 采用 编程的优点 使用标准化的程序代码结构,有利于程序员之 间的交流. Visual C++为MFC提供了大量的工具支持,提高 了编程效率.如利用MFC AppWizard创建MFC 应 用 程 序 框 架 , 利 用 ClassWizard 方 便 地 对 Windows消息进行管理. MFC 应 用 程 序 的 效 率 较 高 , 只 比 传 统 的 Windows C程序低5%左右.并且,在MFC应用 程序中还允许混合使用传统的Windows API函数. 其它优势:完全支持Windows所有的函数,控件, 消息,菜单及对话框;具有良好的稳定性和可 移植性,更符合微软的风格等.
6.2.2 MFC体系结构 体系结构 MFC主要组成部分:类,宏和全局函数. 类是MFC中最主要的内容.MFC类是以层次结 构方式组织起来的.MFC中的类分成两部分,除 了一些辅助类,大多数的MFC类是直接或间接从 根类CObject派生而来. 几乎每一个派生层次都与一具体的Windows实例 相对应,如文档类,窗口类和视图类等. MFC宏主要功能:消息映射,运行时对象类型服 务,诊断服务,异常处理. MFC约定:全局函数以"Afx"为前缀,全局变量 以"afx"为前缀.
Mfc42UD.lib MfcO42D.lib MfcD42D.lib Nafxcw.lib NafxcwD.lib gdi32.lib user32.lib kernel32.lib msvcrt.lib msvcrtd.lib libcmt.lib libc.lib
MFCxxUD.DLL的导入函数库(Unicode Debug版) MFCOxxD.DLL的导入函数库(OLE Debug版) MFCDxxD.DLL的导入函数库(Database Debug版) MFC静态链接库(Release版) MFC静态链接库(Debug版) GDI32.DLL的导入函数库 USER32.DLL的导入函数库 KERNEL32.DLL的导入函数库 MSVCRT.DLL(C运行函数库)的导入函数库 MSVCRTD.DLL(Debug版C运行函数库)的导入函数库 C运行函数静态链接库(多线程) C运行函数静态链接库(单线程)

VisualC++MFC编程精品PPT课件

VisualC++MFC编程精品PPT课件

第一步:启动Visual C++,选择工程方法, 项目类型选择MFC AppWizard (exe),输 入工程的名字(如VcApp),选择项目放置 的位置,然后单击“确定”按钮。
第二步:设置应用程序的特性。
这些设置包括六个问题,每一个问题都 有不同的选项供选择。一个问题选择完后, 通过“下一步”(Next)选择下一个问题, 直到六个问题选择完毕。还可பைடு நூலகம்通过“上一 步”(Back)返回上一个问题重新选择。下面 继续上面的例子,在单击“确定”按钮后, 弹出第一个问题窗口,如下图所示。
(1)BOOL CDC::Polyline(CONST POINT *lppt, int cPoints);
(2)BOOL CDC::PolyPolyline(CONST POINT * lppt,
COUST DWORD *lpdwPolyPoints,DWORD cCount);
在Polyline()函数中,lppt是指向折线顶点数组的 指针,而cPoints是折线顶点数组中的顶点数。例如, 绘制一条具有4个顶点的折线,程序如下:
Bezier曲线是最常见的非规则曲线之一。 Bezier曲线属于三次曲线,需要四个控制 顶点来确定一条Bezier曲线,其中曲线通 过第一点和最后一点,并且第一条边和最
后一条边是曲线在起点和终点处的切线, 从而确定了曲线的走向。PolyBezier()函 数可以画出一条或多条Bezier曲线,其函 数原型说明如下:
DC的作用就是提供程序与物理设备或者虚拟 设备之间的联系,除此之外,DC还要处理绘图属 性的设置,如文本的颜色等。程序员可以通过调 用专门的GDI函数修改绘图属性,如 SetTextColor()函数。
CDC类是GDI封装在MFC中最大的一个类。下表列 出了CDC中的一些常用绘图函数。

c课程设计mfc

c课程设计mfc

c 课程设计mfc一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握MFC的基本概念和框架,了解Windows编程的基本原理。

技能目标要求学生能够使用MFC编写简单的Windows应用程序,掌握消息处理、界面设计、文件操作等基本技能。

情感态度价值观目标要求学生培养对计算机科学的兴趣和热情,提高自主学习和解决问题的能力。

二、教学内容根据课程目标,本课程的教学内容主要包括MFC的基本概念和框架、Windows编程的基本原理、消息处理、界面设计、文件操作等。

教学大纲将按照教材的章节进行安排,每个章节都会有相应的知识点和练习题。

具体的教学内容安排如下:1.第一章:MFC入门,介绍MFC的基本概念和框架,学习如何搭建一个简单的MFC应用程序。

2.第二章:Windows编程基础,了解Windows编程的基本原理,学习消息处理、界面设计等基本技能。

3.第三章:文件操作,学习如何使用MFC进行文件读写操作,掌握文件管理和数据存储的基本方法。

4.第四章:常用控件和界面设计,学习如何使用MFC中的常用控件进行界面设计,掌握界面布局和美观性的处理技巧。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。

包括讲授法、讨论法、案例分析法、实验法等。

讲授法用于讲解基本概念和原理,让学生掌握基础知识和技能。

讨论法用于引导学生进行思考和讨论,培养学生的创新思维和问题解决能力。

案例分析法用于分析实际案例,让学生了解MFC在实际应用中的具体使用。

实验法用于实际操作和编程练习,让学生通过动手实践来巩固知识和提高技能。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,将选择和准备适当的教学资源。

教材将是主要的教学资源,我们将选用经典的MFC教材,以保证学生能够系统地学习MFC的知识。

参考书将提供额外的学习资料和案例,以帮助学生深入理解和应用MFC。

多媒体资料将用于辅助教学,如教学视频、PPT演示等,以提供直观的学习材料。

集合课件PPt

集合课件PPt

集合的传递性、吸收性、反对称性
传递性
如果A包含B,B包含C,则A包含C。
吸收性
如果A包含B,则A并B等于A。
反对称性
如果A包含B,B包含A,则A等于B。
集合运算的应用
用于解决数学问题中 的分类和合并问题。
用于逻辑推理和证明 中的概念和定理的表 述和证明。
用于处理集合之间的 关系和运算,如交、 并、补等。
集合的表示方法
列举法
将集合的元素一一列举出来,用 大括号{}括起来。例如:{1,2,3}表 示一个包含三个元素的集合。
描述法
通过描述集合中元素的共同特征 来表示集合。例如:{x|x是正方形 }表示所有正方形的集合。
集合的分类
01
02
03
有限集
包含有限个元素的集合。 例如:{1,2,3}是一个有限 集。
无限集
包含无限个元素的集合。 例如:自然数的集合N是 一个无限集。
空集
不包含任何元素的集合。 例如:{}是一个空集。
02 集合运算
交集、并集、补集
交集
由两个集合中共有的元素 组成的集合称为这两个集 合的交集。
并集
由两个或两个以上集合的 所有元素组成的集合称为 这些集合的并集。
补集
在集合A中,不属于A的元 素组成的集合称为A的补 集。
应用
关系在数据库、人工智能和自然语言处理等领域都有广泛的应用。
等价关系与划分
定义
等价关系是一种特殊的二元关系,它满足自反性、对称性和传递性。自反性指任何元素都 与自己有这种关系,对称性指如果a与b有这种关系,则b与a也有这种关系,传递性指如 果a与b有这种关系,b与c也有这种关系,则a与c也有这种关系。
证明数学定理

MFC程序设计PPT课件

MFC程序设计PPT课件

例 bIsValid ChText,ChGrade cString CsName DwFlags fnSort hWnd,hPen iCount pFrame szName m_szName
3.1.3 应用程序框架介绍
MFC提供了构造Windows应用程序的框架,它不 仅为应用程序建立标准的结构,生成一系列起动文 件,还提供标准的图形用户界面如菜单、工具栏、 状态条等供开发人员在程序中补充完善,开发人员 只需要完成针对特定应用的代码。使用应用程序框 架的应用程序代码小,运行速度快,它提供的工具 也降低了编码的难度。
3. 全局变量 全局变量名以afx开头,如afxTraceFlag、 afxDump等,主要与异常处理有关。
3.1.2 MFC命名规则
匈牙利命名法规定: • 变量名以一个或多个小写字母开头作为前 缀,标识变量的数据类型; • 类型标识后是若干个单词,标识变量含义, 每个单词以大写字母开头,其余字母小写;
• MFC中所有类及自定义类都以C开头; • 类成员变量以m_为前缀,下划线后是变 量名等等。
前缀 B,b Ch c Cs Dw fn
h i p sz m_
表3.1 命名规则
数据类型 BOOL char class CString DWORD function handle int pointer ASCII string Data member
1.文档-视图结构
文档视图结构提供一种连续处理数据的方式,使 应用程序的数据与数据的显示分开处理。
程序的数据储存在文档类中(作为文档类的数据成员),是 对数据的抽象表示。数据显示由视图负责,视图是程序窗 口的客户区,框架窗口是客户区的框架,程序数据显示在 窗口,用户通过视图与程序交互。

mfc课件

mfc课件

福建农林大学 李丽珊
•建立程序框架
• 使用MFC AppWizard 可以创建基于MFC的Windows 应用程序 • MFC AppWizard 显示一系列对话框,引导用户逐步 建立起应用程序的框架和设置程序的基本选项。 • MFC AppWizard 会自动生成应用程序所需的基本文 件,包括程序源文件、头文件、资源文件和项目文件 等。 • MFC AppWizard只为用户建立程序框架,例如程序的 基本界面,具体操作代码仍需要用户自己编写。
福建农林大学 李丽珊
目的要求
理解 MFC的类体系结构和关键技术
具有可视化界面的面向对象系统 开发方法;使用UML进行面向对 象系统的设计;
掌握
熟悉
MFC的类体系和关键技术;
了解
命名空间、UML语言基础 及简单应用。
福建农林大学 李丽珊
8.1 MFC基础和VC可视化开发基础
8.1.1 MFC的类体系
基类Cobject提供的最基本功能有: 1. 支持序列化(serialization)。序列化指如何让一个对象保持持 久不变,即把对象成员数据内容存入一个文件或从一个文件中 读取内容重构对象的过程。 2. 运行时(Run-time)类的信息获取。 3. 提供特定的new,delete和=操作符,完成对象的建立与删除。 福建农林大学 李丽珊
福建农林大学 李丽珊
福建农林大学 李丽珊
• 在项目工作区可以看到,MFC AppWizard创建 了CAboutDlg、CHelloApp、CHelloDoc、 CHelloView和CMainFrame 五个类。这时,我 们可以建立并运行这个程序,选择Build 菜单下 的!Executive hello.exe 选项,运行结果如图所 示。

11第十一章MFC程序设计集合类.ppt

11第十一章MFC程序设计集合类.ppt

数组
Int Get(int nIndex) {assert(nIndex >= 0 && nIndex < m_nSize); return m_pData[nIndex];} Void Set(int nIndex, int nVal) {assert(nIndex >= 0 && nIndex < m_nSize); m_pData[nIndex] = nVal;} };
MFC数组类——动态调整数组大小

CUIntArray array; array.SetSize(10); for(int i = 0; i < 10; i ++) {array[i] = i + 1;} … array.SetSize(20); for(i = 10; i < 20; i ++) {array[i] = i + 1;}
MFC数组类函数——删除

CUIntArray array; array.SetSize(10); for (int i = 0; i < 10; i ++) {array[i] = i + 1;} array.RemoveAt(0); TRACE(_T(“Count = %d\n”), array.GetSize()); array.RemoveAt(0, 3); TRACE(_T(“Count = %d\n”), array.GetSize()); array.RemoveAll(); TRACE(_T(“Count = %d\n”), array.GetSize());
注:原来的项仍保持原值。
MFC数组类——动态调整数组大小

c课程设计mfc

c课程设计mfc

c 课程设计mfc一、教学目标本课程的目标是让学生掌握C语言中的MFC(Microsoft Foundation Classes)编程技术,能够运用MFC开发Windows应用程序。

具体的学习目标如下:1.理解MFC的基本概念和组件。

2.掌握MFC类库的常用类及其方法。

3.了解MFC程序的运行机制。

4.能够使用MFC编写简单的Windows应用程序。

5.能够运用MFC实现常用界面元素和功能,如按钮、菜单、对话框等。

6.能够运用MFC进行数据库操作和文件处理。

情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。

2.培养学生独立思考和解决问题的能力。

3.培养学生良好的编程习惯和团队协作精神。

二、教学内容本课程的教学内容主要包括MFC的基本概念、组件和类库,以及如何使用MFC进行Windows应用程序的开发。

具体的教学大纲如下:1.MFC概述:介绍MFC的概念、历史和发展,理解MFC程序的运行机制。

2.MFC类库:学习MFC常用的类及其方法,如CCmdTarget、CWnd、CDialog等。

3.界面元素和功能:学习如何使用MFC创建按钮、菜单、对话框等界面元素,实现基本功能。

4.数据库操作:学习如何使用MFC进行数据库连接和操作,实现数据存储和查询功能。

5.文件处理:学习如何使用MFC进行文件读写操作,实现文件的打开、保存等功能。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

1.讲授法:通过讲解MFC的基本概念、类库和组件,使学生掌握MFC的基本知识。

2.讨论法:学生进行小组讨论,分享学习心得和解决问题的方式,提高学生的团队协作能力。

3.案例分析法:分析典型的MFC应用程序,使学生更好地理解MFC的应用和实际开发过程。

4.实验法:安排实验课程,让学生动手实践,巩固所学知识,培养学生的实际编程能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用权威、实用的MFC编程教材,为学生提供系统、全面的学习资料。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数组
解决办法
class CArray
{protected:
int m_nSize;
int* m_pData;
public:
CArray(int nSize)
{m_nSize = nSize;
m_pData = new int[nSize];}
~CArray()
{m_nSize = 0;
if(m_pDate != NULL)
{delete array[i];}
array.RemoveAll();
11
2020/12/10
MFC数组类——动态调整数组大小
CUIntArray array; array.SetSize(10); for(int i = 0; i < 10; i ++) {array[i] = i + 1;} … array.SetSize(20); for(i = 10; i < 20; i ++) {array[i] = i + 1;}
MFC
集合类
作 者:李 季
1
2020/12/10
主要内容
数组 列表 映射 类型指针类 基于模板的集合类
2
2020/12/10
数组
C和C++的数组缺陷——无边界检查 Int array[10];
for(int i=0;i<=10;i++) {array[i]=i+1;}
3
2020/12/10
9
2020/12/10
MFC数组类函数——删除
CUIntArray array; array.SetSize(10); for (int i = 0; i < 10; i ++) {array[i] = i + 1;} array.RemoveAt(0); TRACE(_T(“Count = %d\n”), array.GetSize()); array.RemoveAt(0, 3); TRACE(_T(“Count = %d\n”), array.GetSize()); array.RemoveAll(); TRACE(_T(“Count = %d\n”), array.GetSize());
5
2020/12/10
数组
CArray array(10); for (int I = 0; I <= 10; i++) {array.Set((i, i+1);}
6
2020/12/10
MFC数组类——特定类型
类名 CByteArray CWordArray CDWordArray CUIntArray CStringArray CPtrArray CObArray
{delete[] m_pData;}
4
m_pData = NU2L0L2;0}/12/10
数组
Int Get(int nIndex) {assert(nIndex >= 0 && nIndex < m_nSize); return m_pData[nIndex];} Void Set(int nIndex, int nVal) {assert(nIndex >= 0 && nIndex < m_nSize); m_pData[nIndex] = nVal;} };
数据类型 8位字节(BYTE) 16位字节(WORD) 32位双字节(DWORD) 无符号整型(UINT) CString void指针 CObject指针
7
2020/12/10
MFC数组类函数——声明、初始化
CUIntArray array;
array.SetSize(10);
for(int I = 0; i《10; i++)
12 注:原来的项仍保持2原020值/12/1。0
MFC数组类——动态调整数组大小
CUIntArray array;
for(int i=0; i<10; i++)
{array.SetAt(I, i+1);}
CUIntArray array;
for(int i=0; i<10; i++)
{array.SetAtGrow(I, i+1);t}
MFC数组类函数——添加
CUIntArray array; array.SetSize(9); for (int I = 0; I < 4; i++) {array[i] = I + 1;} for (I = 4; I < 9; i++) {array[i] = I + 2;} array.InsertAt(4, 5);
for(int i=0; i<10; i++) {array.SetAtGrow(i, CPoint(i*10, 0));} int nCount = array.GetSize(); for(i=0; i<nCount; i++) {CPoint point = array[i]; TRACE(_T(“x= %d, y= %d\n”),point.x, point.y);}
{array[i] = i+1;}
CSrtingArray array;
array.SetSize(10);
for(int I = 0; I < 10; i++)
{CString string;
string.Format(_T(“%d”), i);
array[] = srting;}
8
2020/12/10
10
2020/12/10
MFC数组类函数——删除
如果数组元素是CPtrArray或CObArray类型, 要先删除被删除指针所指对象然后清空数组。
错误的写法
array.RemoveAll();
正确的写法
int nSize = array.GetSize();
for (int i = 0; i < nSizeቤተ መጻሕፍቲ ባይዱ i ++)
14
2020/12/10
MFC数组类——基于模板
CArray<TYPE, ARG_TYPE> TYPE用来指定元素的数据类型,可以是C++
CUIntArray array;
for(int i=0; i<10; i++)
{array.Add(i+1);}
自他可以自动增大数组的函数有:InsertAt、Append、 Copy
13
2020/12/10
MFC数组类——CArray类
模板类,可为任意数据类型创建类型安全数组类。 CArray <CPoint, CPoint&> array;
相关文档
最新文档