CView

CObject
 └CCmdTarget
    └CWnd
       └CView

CView类为用户定义的视图类提供了基本的功能。视图被连接到文档上,用作文档和用户之间的媒介:视图在屏幕或打印机上显示文档的图像,并将用户的输入解释为对文档的操作。
视图是框架窗口的子窗口。可能会有多个视图共用一个框架窗口,就像在分隔窗口中那样。视图类、框架窗口类和文档类之间的联系通过CDocTemplate类来建立。当用户打开一个新窗口或将现有窗口分隔为多个时,框架会创建一个新视图并将它连接到文档对象上。
一个视图只能被连接到一个文档,但是一个文档可以有多个视图与之相连接,
例如,在分隔窗口或多文档界面(MDI)应用程序的多重子窗口中显示的文档就是如此。对于给定的文档类型,应用程序可以支持不同类型的视图;例如,一个字处理程序可能既要提供文档的完整文本视图,又要提供只显示每节标题的大纲视图。这些不同的视图类型可以放在不同的框架窗口中,如果你使用的是分隔窗口,你也可以把它们放在同一框架窗口的不同板块中。
视图可以响应几种类型的输入,例如键盘输入,鼠标输入或拖放输入,还有菜单、工具条和滚动条产生的命令输入。视图接收框架窗口发送给它的命令,如果视图不接受一个给定的命令,它就将这个命令发送给相连接的文档。与所有的命令目标一样,视图类通过消息映射处理消息。
当文档的数据发生变化时,视图类响应这种变化,通常调用文档的CDocument::UpdateAllViews函数,通知所有其它的视图调用OnUpdate函数。OnUpdate数的缺省实现使视图的整个用户区域无效。你可以重载这个函数,只使视图中与文档的变化部分相对应的区域无效。
如果要使用CView,应当从它派生一个类,并实现它的OnDraw函数以在屏幕上显示。你还可以利用OnDraw函数来进行打印和打印预览。框架将处理打印循环以实现对文档的打印和打印预览。
通过CWnd::OnHScroll和CWnd::OnVScroll成员函数来处理滚动条消息。你可以在这些函数中实现对滚动消息的处理,你也可以利用CView的派生类SCrollView来处理滚动。
除了CScrollView以外,微软基础类库还提供了其它的CView派生类:
·CCtrlView允许你在树,列表和带格式编辑控件中使用文档/视图结构。
·CDaoRecordView在对话框控件中显示数据库记录的视图。
·CEditView提供了一个简单的多行文本编辑器的视图。你可以将CEditView用作对话框中的一个控件,也可以将它用作文档的视图。
·CFormView一种可以滚动的视图,其中包含了对话框控件,它建立在对话框模板资源的基础上。
·CListView使你能够在列表控件中使用文档/视结构的视图。
·CRecordView在对话框控件中显示数据库记录的视图。
·CRichEditView使你能够在带格式编辑控件中使用文档/视图结构的视图。
·CScrollView自动提供滚动支持的一种视图。
·CTreeView使你能够在树控件中使用文档/视图结构的视图。
CView类还有一种派生类,名为CPreviewView,它被框架用于实现打印预览。这个类提供了对打印预览窗口特性的支持,例如工具条、单页或双页预览以及放大(被用来放大预览的图像)等。你没有必要调用或重载CPreviewView的任何成员函数,除非你想实现自己的打印预览界面(例如,如果你希望支持在预览模式下的编辑)。有关使用CView的更多信息参见“Visual C++程序员指南”中的“文档/视图结构主题”和“打印”。另外,有关自定义打印预览的更多细节可以参见“Visual C++文档”中的“技术注释30”。
#include <afxwin.h>

请参阅:CWnd, CFrameWnd, CSplitterWnd, CDC, CDocTemplate, CDocument

CView类成员

操作
DoPreparePrinting显示Print对话框,创建打印机设备环境;如果重载了OnPreparePrinting成员函数,则调用之
GetDocument返回与视图相连接的文档

OLE可重载函数
OnDragEnter当某项第一次被拖入视图的拖放区域时调用这个函数
OnDragLeave当某个被拖的项离开视图的拖放区域时调用这个函数
OnDragOver当某项被拖过视图的拖放区域时调用这个函数
OnDrop当某项被放入视图的拖放区域时调用这个函数,这是缺省的处理函数
OnDropEx当某项被放入视图的拖放区域时调用这个函数,这是主要的处理函数
OnDragScroll调用这个函数以确定光标是否被拖入窗口的滚动区域
OnInitialUpdate在一个视图第一次与文档连接的时候调用这个函数
OnScrollBy当一个包含活动的现场可编辑OLE项的视图被滚动时调用这个函数
OnScroll当OLE项被拖离视图的边界时调用这个函数

可重载函数
IsSelected测试一个文档项是否被选中。用于OLE支持
OnActivateView当一个视被激活时调用
OnActivateFrame当包含了视的框架窗口被激活或失去活动状态时调用这个函数
OnBeginPrinting开始打印作业时调用这个函数;重载这个函数以分配图形设备接口(GDI)资源
OnDraw调用这个函数画出文档的图像,用于屏幕显示,打印或打印预览。需要提供其实现
OnEndPrinting当打印作业结束时调用这个函数。重载这个函数以释放GDI资源OnEndPrintPreview在退出预览模式的时候调用这个函数
OnEndPrintPreview当激活预览模式时调用
OnPrepareDC在为屏幕显示调用OnDraw成员函数或为打印和打印预览调用OnPrint成员函数之前调用
OnPreparePrinting在文档被打印或预览之前调用这个函数;重载这个函数以初始化Print对话框
OnPrint调用这个函数以打印或预览文档的一页
OnUpdate调用这个函数以通知一个视图,文档已经被修改

构造函数
CView构造一个CView对象