再上一篇:第十五章 MFC程序设计基础
上一篇:15.2 文档与视图结构
主页
下一篇:15.4 鼠标使用实例
再下一篇:15.5 GDI与文本处理
文章列表

15.3 MFC的数组类

《VC++程序设计基础》,讲述C++语言的语法和标准库,以及Visual C++ 函数库和MFC类库的使用,并附相关代码示例。

MFC提供了八个数组类,它们均是由类CObject公有派生的。CArray为动态模板类数组,CByteArray为动态的字节数组,CDWordArray为双字动态数组,CObArray为类指针动态数组,CPtrArray为指针动态数组,CStringArray为字符串动态数组,CUIntArray为无符号整数动态数组,CWordArray为字动态数组。

在头文件afxcoll.h中给出了这八个数组类的定义,在文件afxcoll.inl中给出了相关成员函数的实现。每一个数组类均有数据成员:m_pData,是一个指向数组的指针; m_nSize,为数组中的实际元素个数;m_nMaxSize,为数组的大小;m_nGrowBy,为动态增大数组时的增量,缺省值为1。这些数组类基本上可满足多数应用的需求。其成员函数也是类同的,在表15-5中给出了CObArray类常用的成员函数,在后面的例子中要用到这个数组类。

表15-5 CObArray类提供的常用成员函数

成员函数名 功能

int GetSize() 返回数组的大小(以1开始)

int GetUpperBound() 返回数组的上界(以0开始)

void SetSize(int nNew,int nGrowBy=-1) 设置数组的大小

void FreeExtra() 释放多余的空间

void RemoveAll() 释放所有的数组空间

Cobject* GetAt(int nIndex) 取第nIndex元素的指针

void SetAt(int nIndex,Cobject *newElement) 对第nIndex元素置值

Cobject **GetData() 取数组中数据

int Add(Cobject *newElement) 增加一个新元素

void InsertAt(int nIndex, Cobject*newEle) 在第nIndex元素插入一个元素

void RemoveAt(int nIndex,int nCount=1) 删除第nIndex元素