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

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

总结一下,我做了什么:

1)通过以下方式创建CPaneDialogs:

    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)显示 Pane :
m_LoadDlgBar.ShowPane(TRUE,FALSE,FALSE);

这是结果:

所有CPaneDialogs都停靠在CMFCToolbar上的同一位置。

最佳答案

您启动与DockPane的对接,所以不要使用CFrameWndEx::DockPane来使用CFrameWndEx::DockPaneLeftOf

PS:此article提供了一些帮助,但可惜的是它只是划伤了表面。

10-07 17:20