我正在使用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提供了一些帮助,但可惜的是它只是划伤了表面。