3.33如何编写一个具有 水平和垂直 静态分割器面板(三线分割) 的窗口?

      可以通过创建嵌套的 分割器窗口 来解决这个问题 。不要担心,这不像听起来那么困难。因为那些分割器具有 许多可能的布局。下面的讨论假设 打算创建一个三线分割的窗口,一个垂直分割器把该窗口分成2列,右边的一列又被一个嵌套的水平分割器分割成2行。

第1步:使用ClassWizard创建一个新的CMDIChildWnd派生类,该类将负责分割器窗口。该类命名为CSplitFrame。

第2步:在第1步中创建的CSplitFrame类中增加两个CSplitterWnd类型的成员变量。

第3步:使用ClassWizard在CSplitFrame类中增加OnCreateClient()函数的一个重载。

第4步:不要忘记在合适的文档模板中引用CSplitFrame框架类,以获得所希望的行为。注意:因为明确的创建了各个面板内的视图,且通常传递给文档模板构造函数的视图类型变为非必须的。因此,可以把NULL传递给文档模板构造函数的最后一个变量。

 

附加注释:

也可以创建2行,下面的一行又可以分为2列,其不同在于CSplitFrame2::OnCreateClient()以不同的顺序创建分割器窗口:首先是水平分割器,其次再是垂直分割器。

可以详细的理解这两种技术,从而使用更多的分割器创建更复杂的布局,然而2线和3线分割器就能满足大部分应用程序了----值得注意的一个例外是Visual C++ Developer Studio中显示的可停靠窗口(但是那些已经不再是“真正”的分割器了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值