【问题标题】:WTL CSplitterWindow cannot create more than 3 instances?WTL CSplitterWindow 不能创建超过 3 个实例?
【发布时间】:2011-09-27 21:38:49
【问题描述】:

我正在使用 WTL 创建一个包含许多拆分窗格的窗口。结果如下。

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

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

我关注了这篇精彩的文章:http://www.codeproject.com/KB/wtl/wtl4mfc7.aspx。 但我只能添加 3 个拆分器,如下所示。

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

我尝试了很多方法,但仍然无法添加最后一个。 是WTL的错误吗?有人可以帮帮我吗?

最好的问候, 扎克@Shine

【问题讨论】:

    标签: c++ wtl


    【解决方案1】:

    你的问题是什么?是编译错误、运行时 ASSERT 还是其他?

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

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

    右窗格(包括所有“2”窗格)应派生自 CSplitterWindowImpl&lt;CPane2, false&gt;,右上窗格(包括所有“2T”窗格)应派生自 CSplitterWindowImpl&lt;CPane2T, true&gt; 以及右下窗格。

    每个拆分窗格都应在其父级的 OnCreate() 处理程序中创建,并在其自己的 OnCreate() 中创建其子级。

    【讨论】:

    • 感谢您的回复。我得到它的工作。但我仍然不知道发生了什么。顺便问一下,你知道如何创建一个可以包含多个子控件的面板吗?我找到了 CPaneContainer,但它只能包含一个孩子。
    • 我们称之为非模态对话框 :) 派生自 ATL::CDialogImpl 或 WTL::CIndirectDialogImpl 以及 WTL::CDialogResize 用于在调整大小时调整和定位控件。
    猜你喜欢
    • 2017-06-20
    • 2017-03-13
    • 2019-05-28
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多