SOUI官方论坛

 找回密码
 立即注册
查看: 299|回复: 4

SSplitWnd有没有动态添加和删除分割窗口的例子?

[复制链接]
  • TA的每日心情
    开心
    2020-1-17 11:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    7

    主题

    25

    帖子

    376

    积分

    02:00元婴期

    Rank: 3Rank: 3

    积分
    376
    发表于 2019-9-19 11:47:36 | 显示全部楼层 |阅读模式
    SSplitWnd有没有动态添加和删除分割窗口的例子?

    该用户从未签到

    5

    主题

    14

    帖子

    150

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    150
    发表于 2019-9-19 21:48:53 | 显示全部楼层
    namespace
    {
            const TCHAR* xml = _T("<pane idealSize=\"250\" minSize=\"30\" colorBkgnd=\"#008800\" clipClient=\"1\"/>");

            void insert(SSplitWnd* pSplitWnd, LPCTSTR xml)
            {
                    pugi::xml_document doc;
                    if (doc.load(xml))
                    {
                            SSplitPane* pPane = new SSplitPane();
                            pSplitWnd->InsertChild(pPane);
                            if (pPane->InitFromXml(doc.root()))
                            {
                                    pSplitWnd->InsertItem(pPane);
                            }
                    }
            }
    }
    void CMainDlg::OnAdd()
    {
            SSplitWnd* pSplitWnd = FindChildByName2<SSplitWnd>(L"split_row");

            SASSERT(pSplitWnd);

            insert(pSplitWnd, xml);
    }

    该用户从未签到

    24

    主题

    253

    帖子

    1185

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1185

    突出贡献优秀版主

    发表于 2019-9-19 23:23:09 | 显示全部楼层
    9527 发表于 2019-9-19 21:48
    namespace
    {
            const TCHAR* xml = _T("");

    9527这样用会有一个小问题:如果SOUI是MT编译的DLL,那么你new的SplitWnd会被SOUI内部delete的时候导致程序崩溃。
    正确的做法应该是继承SSplitPane,实现虚函数:IRefObj::OnFinalRelease,在里面delete this。
  • TA的每日心情
    开心
    2020-1-17 11:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    7

    主题

    25

    帖子

    376

    积分

    02:00元婴期

    Rank: 3Rank: 3

    积分
    376
     楼主| 发表于 2019-9-20 09:57:07 | 显示全部楼层
    setoutsoft 发表于 2019-9-19 23:23
    9527这样用会有一个小问题:如果SOUI是MT编译的DLL,那么你new的SplitWnd会被SOUI内部delete的时候导致程 ...

    之前也是一直碰到soui内部delete出问题了,听老大一席话,胜读十年书  哈哈

    该用户从未签到

    5

    主题

    14

    帖子

    150

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    150
    发表于 2019-10-3 11:03:59 | 显示全部楼层
    :lol我MT的时候一般是全静态。。。。用DLL的时候都是MD。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2020-2-24 09:51

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表