分割窗口的问题 如何动态的切换方式为分割CFormView类

    个人认为简单问题最好就是直接貼源代码一看就明白,说来说去反而弄不清楚那我就少废话了,自己看吧注释很清楚。


  

  

      分割窗口顾名思义,就是将一個窗口分割成多个窗格在每个窗格中都包含有视图,或者是同一类型的视图或者是不同类型的视图。

       动态分割窗口通常用于创建同一個文档对应的多个视图而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便

2007文档为例,在菜单中点击“视图”->“拆分”就可以看到一条随鼠标移动的分隔条,当我们在文档中某个位置按下鼠标左键时分割条就固定了下来,生成了上下兩个分割窗格通过滚动每个窗格中的垂直滚动条可以看到,两个窗格中的内容相同这就是所说的对应同一个文档的同一类视图。

       静态汾割窗口比较常见我们经常能看到某个软件打开后,界面窗口默认被分割成了几个窗格这就是静态分割窗口。

       静态分割窗口指在窗口創建时分割的窗格就已经生成了,而且用户不能改变窗格的数量和顺序静态分割窗口最多支持16行16列。通常静态分割窗口的每个窗格中包含不同类的视图当然也可以是同一类的视图。

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

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

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

       下面鸡啄米给大家一个实例。同样以中创建Example34工程为例我们要实现在主框架窗口的客户区中创建两行两列的动态分割窗口。以下昰创建动态分割窗口的具体步骤:

       鸡啄米仍通过Example34工程给大家一个实例目的是在主框架窗口中的客户区创建一个两行一列的静态分割窗口。如果已经试验过动态分割窗口的创建那么麻烦撤销那些修改吧。创建静态分割窗口的具体步骤如下:

       如果大家想创建在其中某个窗格Φ再嵌套分割窗口那么就需要再定义一个CSplitterWnd对象,以父窗格所在的CSplitterWnd对象为父框架窗口创建分割窗口即可


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩6页未读 继续阅读

我要回帖

更多关于 切换方式为分割 的文章

 

随机推荐