MFC Feature Pack 2008 CPaneDialog为CDialogBar

时间:2015-06-15 11:09:19

标签: c++ visual-studio-2008 mfc mfc-feature-pack

我正在使用MFC功能包2008编写软件。我的应用程序基于此版本的旧版本。旧版本不是使用功能包编写的。在此应用程序的旧版本中,有CToolBar和3个CDialogBars。它看起来如下:enter image description here

在我的应用程序中,我将CToolBar更改为CMFCToolbar,将CDialogBars更改为CPaneDialogs。我不知道如何设置CPaneDialogs以产生与旧应用程序相同的视觉效果?如何将CPaneDialogs停靠在CMFCToolbar左侧?

总结一下,我做了什么:

1)以这种方式创建CPaneDialog:

    if (!m_LoadDlgBar.Create(_T("DialogBar"),this, 0,IDD_REGBAR,CBRS_TOP | CBRS_FLYBY |CBRS_GRIPPER|  WS_CLIPCHILDREN,IDD_REGBAR))
    {
       TRACE0("Failed to create dialog bar\n");
       return -1;      // fail to create
    }

2)对接:

EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_CommBar);          // this is CMFCToolbar
DockPaneLeftOf(&m_LoadDlgBar, &m_CommBar);    
DockPaneLeftOf(&m_TCPIPDlgBar, &m_LoadDlgBar);    
DockPaneLeftOf(&m_ConnDlgBar, &m_TCPIPDlgBar);    

3)展示窗格:

m_LoadDlgBar.ShowPane(TRUE,FALSE,FALSE);

这就是结果:

enter image description here

所有CPaneDialog都停靠在CMFCToolbar上的相同位置。

1 个答案:

答案 0 :(得分:0)

您启动与DockPane的对接,因此使用CFrameWndEx::DockPaneLeftOf

而不是使用CFrameWndEx :: DockPane

PS:这article提供了一些帮助,但可悲的是它只是表面上的。