MFC Windows 程序设计(5)
来源:互联网 发布:网络暴利项目 编辑:程序博客网 时间:2024/05/17 03:14
MFC数组类
CArray
在头文件Afxtempl.h中定义。
非模板化的数组类,分别为保存特定类型的数据而设计。这些类在Afxcoll.h中定义。
CByteArray BYTE 8位字节
CWordArray WORD 16位字节
CDWordArray DWORD 32位字节
CUIntArray UINT 无符号整型
CStringArray CString
CPtrArray void指针
CObArray CObject指针
动态调整数组大小
CUintArray array;
Array.SetSize(10);
//调整到20个
Array.SetSize(20);
★ 使用SetSize调整,调整后原来的项仍然保持原来的值不变。
赋值时使用SetAtGrow代替SetAt赋值。SetAtGrow会在必要是自动增大数据的内存空间,Add,InsertAt,Append,Copy也是这样。
★ 内存不足造成数组增大失败,抛出的异常类型CMemoryException
★ SetSize也可以用来减少数组元素,但SetSize并不会自动缩小保存数组数据的缓冲区,需要调用FreeExtra 释放内存
Array.SetSize(50);
Array.Setsize(30);
Array.FreeExtra();
使用模板类CArray
CArray是一个模板类,用它可以位任意的数据类型创建类型安全数组类,如为CPoint对象创建安全数组。
CArray<CPoint,CPoint&> array;//第一个参数指定了保存在数组中的数据类型,第二个参数指定类型在参数列表中的表示方法
//赋值
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];
}
★CArray模板参数中可以使用任何种类的数据,甚至是自己创建的类
CList模板类
自定义类型的非模板列表类
CObList CObject指针
CPtrList void指针
CStringList CStirng
因为CList是模板类,所以CList和CArray一样可以为任何数据类型创建安全列表
Typedef CList<CPoint,CPoint&> CPointList;
CPointList list;
基于模板的映射表类CMap
特定类型的映射表类
CMapWordToPtr 保存void指针,关键字为WORD
CMapPtrToWord 保存WORD,关键字为void指针
CMapPtrToPtr 保存void指针,关键字为其他void指针
CMapWordToOb 保存CObject指针,关键字为WORD
CMapStringToOb
CMapStringToPtr
CMapStringToString
创建CPoint的对象集合,关键字为CString的映射表类
CMap<CString,CString&,CPoint,cPoint&> map;
Map[CString(_T(“A”))]=CPont(0,0);//建立映射表数据
CPoint point;
Map.Lookup(CString(_T(“A”)),point);//根据关键字查找映射表将值赋给参数,成功返回TRUE。
类型指针类
MFC的类型指针类是一组三个模板类,用来以安全的方式处理指针集合。
CTypedPtrArray 管理指针数组
CTypedPtrList 管理指针连接列表
CTypedPtrMap 管理使用指针作为项目或关键字的映射表
- MFC Windows 程序设计(5)
- 《MFC Windows 程序设计》
- mfc windows 程序设计
- MFC Windows 程序设计(1)
- MFC Windows 程序设计(2)
- MFC Windows 程序设计(3)
- MFC Windows 程序设计(4)
- MFC Windows 程序设计(6)
- MFC Windows 程序设计(7)
- MFC Windows程序设计读书笔记
- MFC Windows 程序设计->GetDeviceCaps
- MFC Windows程序设计-概述
- MFC Windows程序设计 9-7
- MFC Windows程序设计 12-1
- mfc windows 程序设计 07.4.11
- 读书笔记--MFC Windows程序设计(一)
- 读书笔记--MFC Windows程序设计(二)
- MFC Windows程序设计读书笔记第一章
- 由src.rpm编译出内核源码
- C++ Internals: VC RTTI - dynamic_cast (1)
- 【SD2.0大会】金蝶中间件技术总监张勇:开创企业Web2.0新天地
- 表的刻隆
- 9个点上10条线,每条线上3个点
- MFC Windows 程序设计(5)
- GridView排序功能的实现
- c#.net多线程编程教学(3):线程同步
- 保护系统 WinXP故障恢复控制台完全指引
- SQL 存储过程(2)
- SQL 存储过程(3)
- mdada manage device
- Windows Server 2003网络负载均衡的实现
- 【SD2.0大会】终于听到了实在的技术!