我有3个可停靠的窗格,每个窗格包含1个图像。一个在左边,一个在右边,一个看不见。问题是,我想有一个在默认情况下隐藏的权利,让一个在左边采取整个空间。我已经搜索了整个文档,以找到我应该在我的窗格上调用以下内容,但什么也没有发生。
ToggleAutoHide();
我不知道我错过了什么。下面是我的创建代码,以防它有帮助:
// image docking panel creation
if (!m_wndRawImage.Create(_T("Raw Image"), this, imgRect, TRUE, ID_VIEW_RAWIMGWND, dwPaneStyle| CBRS_RIGHT, AFX_CBRS_REGULAR_TABS, AFX_CBRS_RESIZE))
{
TRACE0("Failed to create image tab window\n");
return -1;
}
if (!m_wndRefImage.Create(_T("Reference Image"), this, imgRect, TRUE, ID_VIEW_REFIMGWND, dwPaneStyle| CBRS_RIGHT))
{
TRACE0("Failed to create image tab window\n");
return -1;
}
if (!m_wndCalibImage.Create(_T("Calibrated Image"), this, imgRect, TRUE, ID_VIEW_CALIBIMGWND, dwPaneStyle| CBRS_RIGHT))
{
TRACE0("Failed to create image tab window\n");
return -1;
}
m_wndImagePane1.EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
m_wndImagePane2.EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
m_wndImagePane3.EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
CDockingManager::SetDockingMode(DT_SMART);
EnableDocking(CBRS_ALIGN_ANY);
EnableAutoHidePanes(CBRS_ALIGN_ANY);
// image panes
DockPane(&m_wndImagePane3);
CDockablePane* pTabbedBar2 = NULL;
m_wndImagePane2.AttachToTabWnd(&m_wndImagePane3, DM_SHOW, FALSE, &pTabbedBar2);
m_wndImagePane2.ShowPane(FALSE, FALSE, FALSE);
m_wndImagePane3.ShowPane(TRUE, FALSE, TRUE);
m_wndImagePane3.ToggleAutoHide(); //<---- Problem is here
DockPane(&m_wndImagePane1);
m_wndImagePane1.ShowPane(TRUE, FALSE, TRUE);
谢谢!
2条答案
按热度按时间u0njafvf1#
如果我对您问题理解正确的话,您希望在应用程序启动中隐藏一个窗格。
我使用
ON_WM_SHOWWINDOW()
消息来隐藏窗格。就像这样:将其添加到
CMainFrame
类声明中:并将其添加到消息Map:
并将其添加到主代码中:
希望可以帮到你!
r6vfmomb2#
为了子孙后代。
1.在
CMainFrame
类中添加新的公共方法:1.从
CMyApp::InitInstance
方法的末尾调用此方法: