分割视图

分割窗口将窗口分成几个部分,每个部分通常代表一个视图(但也可以是具有子窗口标识的CWnd对象),又称窗格。
基础资料
  • 简介:将窗口分成几个部分,每个部分通常代表一个视图(但也可以是具有子窗口标识的CWnd对象),又称窗格。
  • 特点:每个部分通常代表一个视图
  • 简介

    分割视图简介

    如图所示。如果想在一个窗口里面观察文档的不同部分,或者是在一个窗口里用不同类型的视图(比如用图表和表格)观察同一个文档,那么采用分割窗口是非常方便的。许多优秀的软件都采用了分割窗口技术,因此我们有必要掌握分割窗口的用法。

    分割窗口分为两类:动态分割窗口和静态分割窗口。

    动态分割窗口是指:用户可以动态的分割和除去分割窗口,分割窗口会创建和删除相应的窗格。Microsoft Word就是使用动态分割窗口的例子,这是一种最常用的分割窗口。动态分割窗口最多可以有2行´ 2列个格。

    静态分割窗口是指:在窗口创建时,分割窗口的窗格就已经创建好了,且窗格的数量和顺序不会改变。窗格为一个分割条所分割,用户可以拖动分割条调整相应的窗格的大小。

    CSplitterWnd类

    MFC中的分割窗口类-CSplitterWnd类提供了分割窗口的功能。CSplitterWnd类中包含一个分割器窗口,该分割器窗口就是一个包含多个窗格的窗口。我们分割窗口时就是直接在此分割器窗口中分割的。

    下面介绍三个最常用的成员函数:

    virtual BOOL Create(

    CWnd* pParentWnd,

    int nMaxRows,

    int nMaxCols,

    SIZE sizeMin,

    CCreateContext* pContext,

    DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,

    UINT nID = AFX_IDW_PANE_FIRST

    );

    创建动态分割窗口。参数pParentWnd为分割器窗口的父框架窗口;参数nMaxRows为分割器窗口的最大行数,不能超过2;参数nMaxCols为分割器窗口的最大列数,也不能超过2;参数sizeMin为窗格能显示的最小尺寸,如果窗格尺寸小于sizeMin则不显示;参数pContext为指向CCreateContext结构的指针,大多数情况下可以赋值为父框架窗口的pContext;参数dwStyle指定窗口风格;参数nID为分割窗口的ID,除非分割器窗口嵌入到另一个分割器窗口中,否则可以取值AFX_IDW_PANE_FIRST。

    virtual BOOL CreateStatic(

    CWnd* pParentWnd,

    int nRows,

    int nCols,

    DWORD dwStyle = WS_CHILD | WS_VISIBLE,

    UINT nID = AFX_IDW_PANE_FIRST

    );

    创建静态分割窗口。参数pParentWnd、dwStyle和nID同上;参数nRows为行数,不能超过16;参数nCols为列数,同样不能超过16。

    virtual BOOL CreateView(

    int row,

    int col,

    CRuntimeClass* pViewClass,

    SIZE sizeInit,

    CCreateContext* pContext

    );

    为静态分割窗口创建窗格视图。参数row指定分割器窗口中放置新视图的行;参数col指定放置新视图的列;参数pViewClass指定新视图的CRuntimeClass对象;参数sizeInit指定新视图的初始大小;参数pContext为指向CCreateContext结构的指针,通常可以赋值为传递给父框架窗口的重载函数CFrameWnd::OnCreateClient的pContext参数值。

    动态分割窗口

    创建动态分割窗口的步骤为:

    1. 在父框架类中定义一个CSplitterWnd类型的成员对象。

    2. 重载父框架类的CFrameWnd::OnCreateClient成员函数。

    3. 在重载的CFrameWnd::OnCreateClient函数中调用CSplitterWnd成员对象的Create函数。

    静态分割窗口

    创建静态分割窗口的步骤为:

    1. 在父框架类中定义一个CSplitterWnd类型的成员对象。

    2. 重载父框架类的CFrameWnd::OnCreateClient成员函数。

    3. 在重载的CFrameWnd::OnCreateClient函数中调用CSplitterWnd成员对象的CreateStatic成员函数,然后可以调用CSplitterWnd成员对象的CreateView成员函数为每个窗格创建视图。

    首页
    科技
    #贵族
    最新入驻
    贾科莫·普契尼
    Caroline Lufkin
    翁建宇
    相关阅读
    Lambda表达式
    内容词条·2831人浏览
    事件处理函数
    内容词条·4742人浏览
    string
    内容词条·5056人浏览
    EventHandler
    内容词条·862人浏览
    初始化列表
    内容词条·475人浏览
    TMS320F2812
    内容词条·953人浏览
    • 网站地图
    • |

    Copyright 2023 fuwu029.com赣ICP备2022008914号-4