DockPaneLeftOf in CMDIChildWndEx Frame
DockPaneLeftOf in CMDIChildWndEx Frame
我有以下代码,我想将CMFCToolBars停靠在一行中,但使用DockPaneLeftOf不会导致任何工具栏(MainTools除外)显示。仅使用DockPane会导致工具栏显示在彼此下方。有什么想法吗?
BOOL CFloorFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if ((!m_ctlMainTools.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER, 2)) ||
(!m_ctlMainTools.LoadToolBar(IDR_FA_SC_TBAR)))
{
return FALSE;
}
if ((!m_ctlObjects.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER, 1)) ||
(!m_ctlObjects.LoadToolBar(IDR_FLOOR_OBJECTS)))
{
return FALSE;
}
if ((!m_ctlTools.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER, 3)) ||
(!m_ctlTools.LoadToolBar(IDR_FLOOR_TOOLS)))
{
return FALSE;
}
m_ctlMainTools.EnableDocking(CBRS_ALIGN_ANY);
m_ctlObjects.EnableDocking(CBRS_ALIGN_ANY);
m_ctlTools.EnableDocking(CBRS_ALIGN_ANY);
m_ctlLegend.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_ctlMainTools);
DockPaneLeftOf(&m_ctlObjects, &m_ctlMainTools);
DockPaneLeftOf(&m_ctlTools, &m_ctlObjects);
DockPaneLeftOf(&m_ctlLegend, &m_ctlTools);
DragAcceptFiles(TRUE);
return TRUE;
}
也许您错过了ShowPane调用。这对我有用
DockPane(&m_wndEditBar);
m_wndEditBar.ShowPane(TRUE, FALSE, TRUE);
DockPaneLeftOf(&m_wndMainBar, &m_wndEditBar);
m_wndMainBar.ShowPane(TRUE, FALSE, TRUE);
m_wndEditBar显示在m_wndMainBar的右侧。
此外,CMDIFrameWndEx::LoadFrame函数最终调用CDockingManager::LoadState,读取保存的注册表数据。它可以覆盖您更改的所有工具栏设置。清除程序注册表可能会有效果。每当我们更改按钮或工具栏的状态时,我们都必须清除注册表以使其出现。
相关文章:
- 堆叠协程 + gdb = "previous frame inner to this frame (corrupt stack)?"
- CMFCTabCtrl ActiveTab on CMDIChildWndEx::OnMDIActivate and t
- OpenCV VideoCapture Partial Frame Corruption
- openh264 Repeating frame
- g++:如果在 -O2 或 -O3 之前指定,-fno-omit-frame-pointer 是否有效
- C# 到非托管 C++ DLL 访问冲突/"frame not in module"
- 源代码中的这一行(cap>> frame;)是什么意思?
- cvCaptureFromCAM(CV_CAP_DSHOW) capture blank frame
- ID3 Frame Header
- Xcode的GDB在设备上安装时显示"Warning: the current language does not match this frame"
- C++ / MFC: CDockablePane in CMDIChildWndEx
- DockPaneLeftOf in CMDIChildWndEx Frame
- 调试失败,gdb: "Could not find the frame base" ,但使用 lldb
- cvResize on a video frame
- visual MFT Frame Extraction in c++
- 为什么函数'x'.write(frame)对我不起作用?