使用文档数据变量管理数据
将文档的数据作为文档类的成员变量实现。 例如,Scribble 程序会声明一个 CObList
类型的数据成员,它是一个链接列表,用于存储指向 CObject
对象的指针。 此列表用于存储构成随手绘制的线条的点数组。
如何实现文档的成员数据取决于应用程序的性质。 为了帮助你操作,MFC 提供了一组“集合类”和用于封装各种常见数据类型(例如 CString
、CRect
、CPoint
、CSize
和 CTime
)的类,其中集合类是指数组、列表和映射(字典),其中包括基于 C++ 模板的集合。 有关这些类的详细信息,请查看 MFC 参考中的类库概述。
定义文档的成员数据时,通常会将成员函数添加到文档类,来设置和获取数据项,并对其执行其他有用的操作。
你的视图通过使用视图指向文档的指针来访问文档对象,该指针在创建时安装在视图中。 可在视图的成员函数中调用 CView
成员函数 GetDocument
来检索此指针。 请务必将此指针强制转换为你自己的文档类型。 然后,可通过指针访问公共文档成员。
如果频繁的数据传输需要直接访问,或者你想要使用文档类的非公共成员,则可能需要使视图类成为文档类的友元(参见 C++ 术语)。