none
关于MDI一个page拖动到另一个中如何实现 RRS feed

  • 问题

  • 我想做一个报表的对比,左边显示一个当前的报表,右边显示过往的。这在mdi中本身有这个功能。
    当拖拽page1到page2的区域,它会自动分割

    拖动后效果如图

    这是VS2008SP1中MDI本身具有的功能,我想在一个菜单项中实现该功能以省却拖拽等动作。

     

    由于长期不编程了不知该如何下手,目前仅写了以下几行代码。。。  

    CMainFrame *pwnd=(CMainFrame*)((CfunctionApp*)AfxGetApp())->m_pMainWnd;
        theApp.NewFile();
        CChildFrame *child1 = (CChildFrame *)(pwnd->MDIGetActive());
        CView *view1=pwnd->GetActiveView();
        theApp.NewFile();
        CView *view2=pwnd->GetActiveView();
        CChildFrame *child2 = (CChildFrame *)(pwnd->MDIGetActive());

    然后呢,该怎么做?

     

    2011年9月20日 6:36

全部回复

  • 这个貌似有些复杂,

    首先movewindow 和setwindowpos这些函数是不行的,虽然暂时改变了窗口的大小,但是没有触发停靠的事件,所以根本没有变化。

    如果想做成的一样效果的话,就得去模拟整个过程,创建一个CDockablePane 然后再加进程序里面。这个过程很复杂。

    或者通过切分视图来实现,用CSplitterWndEx, 效果可能有些差别,个人建议使用这种方法,简单,参考

    http://hi.baidu.com/yoan_t/blog/item/acfe5cc2d8c5c6110ff47734.html


    NEU_ShieldEdge
    2011年9月22日 16:14