积极答复者
关于CDockablePane叠在一起,然后浮动其中一个的问题

问题
-
当A、B两个CDockablePane叠在一起,点击X关闭或者调用ShowPane(FALSE, FALSE, FALSE)隐藏A,然后右键菜单浮动起B,之前隐藏的A就会在原位置显示出来了,
现在由于右键菜单我要替换里面的菜单项,自己做了一个浮动按钮代码如下
BOOL bWasFloated = FALSE; CBaseTabbedPane* pTabbedBar = DYNAMIC_DOWNCAST(CBaseTabbedPane, GetParentTabbedPane()); if (pTabbedBar != NULL && 1 != pTabbedBar->GetVisibleTabsNum()) { ASSERT_VALID(pTabbedBar); CMFCBaseTabCtrl* pTabWnd = pTabbedBar->GetUnderlyingWindow(); if (pTabWnd != NULL) { ASSERT_VALID(pTabWnd); const int nTabID = pTabWnd->GetActiveTab(); CWnd* pWnd = pTabWnd->GetTabWnd(nTabID); if (pWnd != NULL && pTabWnd->IsTabDetachable(nTabID)) { bWasFloated = pTabbedBar->DetachPane(pWnd, FALSE); if (bWasFloated) { if (pTabWnd->GetTabsNum() > 0 && pTabWnd->GetVisibleTabsNum() == 0) { pTabbedBar->ShowPane(FALSE, FALSE, FALSE); } } } } } if (!bWasFloated && TRUE) { FloatPane(m_recentDockInfo.m_rectRecentFloatingRect); }
点击浮动按钮,B窗口浮动是没有问题的,但是这时候之前隐藏的A没有显示出来,并且之前窗口的位置还显示的是B窗口(一个假死的窗口),再点击一次浮动才可以显示出A,这可能是什么原因导致的
- 已编辑 Hota_CT 2019年2月15日 12:09