正在加载图片...
第16单元多文档界面程序 335 量。 sideline是每次跳一小格的滚动量,以上参数的单位均为逻辑坐标的单位。 2.取滚动条坐标(客户区左上角坐标)和虚拟客户区大小: CPoint CScroll View: GetScrollPosition () const CSize CScroll View Get TotalSize ( const 3.将客户区左上角滚动到指定坐标 void CScrollView: ScrollToPosition(POINT pt 其中参数pt为指定的客户区坐标。 4.取滚动位置和虚拟客户区大小的物理坐标 CPoint CScroll View: Get DeviceScrollPosition () const void CScroll View: GetDevice ScrollSizes( int& n Map Mode SIZE& size Total SIZE& sizePage SIZE& size Line ) const 要使应用程序支持卷滚,可在用 App Wizard生成框架程序时就指定视图的基类为 CSrollview。做法是在 AppWizard的 MFC AppWizard-Step6of6对话框中,在应用程序所包 含的类中选择视图类,然后在 Base class下拉列表框中选择应用程序视图类的基类为 如果要手工修改视图类的基类为 CScrollview,可按以下步骤操作: 1.修改视图类所对应的头文件,将所有用到Cvew的地方改为 SCroll o可以使 用文本替换对话框(在编辑菜单中)中的替换功能,进行全局替换。 2.确定虚拟客户区的大小。这项工作通常在视图派生类的 OnInitial Update()成员函 数或 On Create()成员函数中通过调用 Setscrollsizes()成员函数来完成。 3.如果在视图类的消息响应函数(如鼠标消息函数)中使用了 CClientDC设备,则要注意 该设备仍以实际客户区的左上角为原点,在存储有关数据时,可能要将其转换为虚拟客户区 坐标。转换方法很简单,只要将坐标值加上客户区左上角在虚拟客户区的坐标值即可。然而, OnDraw()函数无需任何修改,因其使用的设备由 CScrollview自动维护 163对话视图 对于人事档案管理、名片管理、图书管理这类应用程序,视图的主要作用是显示各项文 档资料,同时又要提供方便的修改手段。如例15-1,采用对话框编辑档案材料比较方便 然而,基于对话框的应用程序不提供文档类,数据存取不方便 MFC提供了 CForm view类,该类成员兼有对话框和视图的特点,最适合作文档管理类 应用程序的用户界面 要使应用程序支持CFomⅤiew类,可在用 App Wizard生成框架程序时就指定视图的基 类为 CForm view。做法是在 AppWizard的 MFC App Wizard-Step6of6对话框中,在应用程 序所包含的类中选择视图类,然后在 Base Class下拉列表框中选择应用程序视图类的基类为 CForm view a第 16 单元 多文档界面程序 335 量。sizeLine 是每次跳一小格的滚动量,以上参数的单位均为逻辑坐标的单位。 2.取滚动条坐标(客户区左上角坐标)和虚拟客户区大小: CPoint CScrollView::GetScrollPosition() const; CSize CScrollView::GetTotalSize() const; 3.将客户区左上角滚动到指定坐标 void CScrollView::ScrollToPosition(POINT pt); 其中参数 pt 为指定的客户区坐标。 4.取滚动位置和虚拟客户区大小的物理坐标 CPoint CScrollView::GetDeviceScrollPosition()const; void CScrollView::GetDeviceScrollSizes(int& nMapMode, SIZE& sizeTotal, SIZE& sizePage, SIZE& sizeLine)const; 要使应用程序支持卷滚,可在用 AppWizard 生成框架程序时就指定视图的基类为 CSrollView。做法是在 AppWizard 的 MFC AppWizard-Step 6 of 6 对话框中,在应用程序所包 含的类中选择视图类,然后在 Base Class 下拉列表框中选择应用程序视图类的基类为 CScrollView。 如果要手工修改视图类的基类为 CScrollView,可按以下步骤操作: 1.修改视图类所对应的头文件,将所有用到 CView 的地方改为 CScrollView。可以使 用文本替换对话框(在编辑菜单中)中的替换功能,进行全局替换。 2.确定虚拟客户区的大小。这项工作通常在视图派生类的 OnInitialUpdate()成员函 数或 OnCreate()成员函数中通过调用 SetScrollSizes()成员函数来完成。 3.如果在视图类的消息响应函数(如鼠标消息函数)中使用了 CClientDC 设备,则要注意 该设备仍以实际客户区的左上角为原点,在存储有关数据时,可能要将其转换为虚拟客户区 坐标。转换方法很简单,只要将坐标值加上客户区左上角在虚拟客户区的坐标值即可。然而, OnDraw()函数无需任何修改,因其使用的设备由 CScrollView 自动维护。 16.3 对话视图 对于人事档案管理、名片管理、图书管理这类应用程序,视图的主要作用是显示各项文 档资料,同时又要提供方便的修改手段。如例 15-1,采用对话框编辑档案材料比较方便。 然而,基于对话框的应用程序不提供文档类,数据存取不方便。 MFC 提供了 CFormView 类,该类成员兼有对话框和视图的特点,最适合作文档管理类 应用程序的用户界面。 要使应用程序支持 CFormView 类,可在用 AppWizard 生成框架程序时就指定视图的基 类为 CFormView。做法是在 AppWizard 的 MFC AppWizard-Step 6 of 6 对话框中,在应用程 序所包含的类中选择视图类,然后在 Base Class 下拉列表框中选择应用程序视图类的基类为 CFormView
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有