一、关于CSplitterWnd类-Read.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、关于CSplitterWnd类-Read.doc

一、关于CSplitterWnd类   我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中 窗口被分割为若干的区域,真正做到了窗口的任意分割。?那么我们自己如何创建类似的界面,也实现 窗口的任意的分割呢??在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种 特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被切分后用户可以使用鼠标移动 切分条来调整窗口的相对尺寸。虽然VC6.0支持从AppWizard中创建分割窗口,但是自动加入的分割条 总是不能让我们满意,因此我们还是通过手工增加代码来熟悉这个类。?   CSplitterWnd的构造函数主要包括下面三个。? BOOL?Create(CWnd*?pParentWnd,int?nMaxRows,int?nMaxCols,SIZE?sizeMin, CCreateContext*?pContext,DWORD?dwStyle,UINT?nID);   功能描述:该函数用来创建动态??分窗口。?参数含义:pParentWnd?切分窗口的父框架窗口。? ????nMaxRows,nMaxCols是创建的最大的列数和行数。?sizeMin是窗格的现实大小。?pContext?大多数 ????情况下传给父窗口。?nID是字窗口的ID号.? BOOL?CreateStatic(CWnd*?pParentWnd,int?nRows,int?nCols,DWORD?dwStyle,UINT?nID)?   功能描述:用来创建切分窗口。?参数含义同上。? BOOL?CreateView?(int?row,int?col,CruntimeClass*?pViewClass,SIZE?sizeinit, CcreateContext*?pContext);   功能描述:为静态切分的窗口的网格填充视图。在将视图于切分窗口联系在一起的时候必?须先将切分 ????窗口创建好。?   参数含义:同上。   从CSplitterWnd源程序可以看出不管是使用动态创建Create还是使用静态创建CreateStatic,在函 ????数中都调用了一个保护函数CreateCommon,从下面的CreateCommon函数中的关键代码可以看出创建 ????CSplitterWnd的实质是创建了一系列的MDI子窗口。? DWORD?dwCreateStyle?=?dwStyle??~(WS_HSCROLL|WS_VSCROLL); if?(afxData.bWin4)? ????dwCreateStyle?=?~WS_BORDER;?//create?with?the?same?wnd-class?as?MDI-Frame?(no?erase?bkgnd)? if?(!CreateEx(0,?_afxWndMDIFrame,?NULL,?dwCreateStyle,? ??????????0,?0,?0,?0,pParentWnd-m_hWnd,?(HMENU)nID,?NULL))? ???????return?FALSE;?//?create?invisible? ??????????   二、创建嵌套分割窗口?   2.1创建动态分割窗口   动态分割窗口使用Create方法。下面的代码将创建2x2的窗格。? m_wndSplitter.Create(this,2,2,CSize(100,100),pContext);   但是动态创建的分割窗口的窗格数目不能超过2x2,而且对于所有的窗格,都必须共享同一个视图,所受 ????的限制也比较多,因此我们不将动态创建作为重点。我们的主要精力放在静态分割窗口的创建上。?   2.2创建静态分割窗口   与动态创建相比,静态创建的代码要简单许多,而且可以最多创建16x16的窗格。不同的窗格我们可以使 ????用CreateView填充不同的视图。?   在这里我们将创建CuteFtp的窗口分割。CuteFtp的分割情况如下:? CCuteFTPView? CView2?CView3? CView4?   创建步骤:?   ▲?在创建之前我们必须先用AppWizard生成单文档CuteFTP,生成的视类为?CCuteFTPView.同时在增加 ????三个视类或者从视类继承而来的派生类CView2,CView3?CView4.?   ▲?增加成员:?   在Cmainfrm.h中我们将增加下面的代码:? CSplitterWnd?wndSplitter1; CSplitterWnd?wndSplitter2;   ▲?重载CMa

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档