2010-03-21 64 views
1

我正在使用WTL创建一个包含许多拆分窗格的窗口。以下将是结果。WTL CSplitterWindow不能创建3个以上的实例吗?

--------------------------- 
|  |   |   | 
|  |   |   | 
|  |   |   | 
|  |-------------------- 
|  |  |   | 
|  |  |   | 
--------------------------- 

将会有4个分离器,三个垂直分配器和一个水平分配器。

我跟着伟大的文章:http://www.codeproject.com/KB/wtl/wtl4mfc7.aspx。 但我只能添加3个分割器,如下所示。

--------------------------- 
|  |   |   | 
|  |   |   | 
|  |   |   | 
|  |-------------------- 
|  |     | 
|  |     | 
--------------------------- 

我尝试了很多方法,但仍不能添加最后一个。 是WTL的错误吗?有谁能够帮助我?

最好的问候, 扎克@闪耀

+0

+1 ascii艺术;) – 2010-10-16 22:19:11

回答

4

你有什么问题?它是一个编译错误,一个运行时ASSERT,别的东西?

我强烈建议你从CSplitFrameWindowImpl<>派生你的CMainFrame。

--------------------------- 
|  |   |   | 
|  | 2TL | 2TR | 
| 1L |   |   | 
|  |-------------------- 
|  | 2BL | 2BR  | 
|  |  |   | 
--------------------------- 

右边窗格(包括所有“2”窗格)应从CSplitterWindowImpl<CPane2, false>派生,右顶部窗格(包括所有的“2T”窗格)应从CSplitterWindowImpl<CPane2T, true>以及右下角一个派生。

每个分割窗格应该在其父项的OnCreate()处理程序中创建,并在其自己的OnCreate()中创建它的子项。

+0

感谢您的回复。我得到了它的工作。但我仍然不知道发生了什么。 顺便说一下,你知道如何创建一个可以包含多个子控件的面板吗? 我找到了CPaneContainer,但它只能包含一个孩子。 – Zach 2010-03-22 02:35:21

+1

我们称之为非模态对话框:)从ATL :: CDialogImpl或WTL :: CIndirectDialogImpl派生并从WTL :: CDialogResize派生,以便在调整大小时调整和定位控件。 – 2010-03-22 04:52:14

相关问题