我正在使用MFC功能包2008编写软件。我的应用程序基于此版本的旧版本。旧版本不是使用功能包编写的。在此应用程序的旧版本中,有CToolBar和3个CDialogBars。它看起来如下:
在我的应用程序中,我将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);
这就是结果:
所有CPaneDialog都停靠在CMFCToolbar上的相同位置。
答案 0 :(得分:0)
您启动与DockPane的对接,因此使用CFrameWndEx::DockPaneLeftOf
而不是使用CFrameWndEx :: DockPanePS:这article提供了一些帮助,但可悲的是它只是表面上的。