文档/视图结构的纵览

文档和视图在典型的 MFC 应用程序中是成对的。 数据存储在文档中,但视图具有对数据的特别访问权。 将文档与视图分离也会将数据的存储和维护与数据的显示分离。

获取从视图访问文档数据的权限

视图使用 GetDocument 函数(返回指向文档的指针)或通过使视图类成为文档类的 C++ friend 来访问其文档的数据。 视图随后会在准备好绘制或以其他方式操作数据时使用其访问权限获取数据。

例如,视图从其 OnDraw 成员函数使用 GetDocument 获取文档指针。 然后,它使用该指针访问文档中的 CString 数据成员。 视图将字符串传递到 TextOut 函数。 若要查看此示例的代码,请参阅在视图中进行绘制

对视图的用户输入

视图还可能在自身中将鼠标单击解释为数据的选择或编辑。 同样,它也可能将键击解释为数据输入或编辑。 假设用户在管理文本的视图中输入了一个字符串。 视图获取指向文档的指针并使用该指针将新数据传递到文档,从而将数据存储在某个数据结构中。

更新同一文档的多个视图

在具有同一文档的多个视图(如文本编辑器中的拆分窗口)的应用程序中,视图首先将新数据传递到文档。 然后,视图调用文档的 UpdateAllViews 成员函数,该函数将指示文档的所有视图自行更新,以反映新数据。 这将同步视图。

你想进一步了解什么

另请参阅

文档/视图体系结构