M_wndtabs调整大小以覆盖整个客户区,位置为:
cView::onSize(类型,cx,cy);
m wndtabs.setwindowpos(nullptr,-1,-1,cx,cy,swp nomove swp noactivate swp nozorder);

以下内容:
pDocTemplate = new CMultiDocTemplate( IDR_MYTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMyChildFrame),
RUNTIME_CLASS(CMyView));
CMFCTabCtrl
(m_wndTabs
CViewTest1
CViewTest2
类(从MFC派生CView
MyView::Create
功能:
CRect rectDummy;
rectDummy.SetRectEmpty();
if (!m_wndTabs.Create(CMFCTabCtrl::STYLE_3D_ONENOTE, rectDummy, this, 1))
{
TRACE0("Failed to create output tab window\n");
return -1;
}
CViewTest1 *pWnd1 = (CViewTest1*)RUNTIME_CLASS(CViewTest1)->CreateObject();
pWnd1->Create(nullptr, nullptr, LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE, CRect(0, 0, 300, 300), this, 1, pContext);
pWnd1->SetFont(&afxGlobalData.fontRegular);
CViewTest2 *pWnd2 = (CViewTest2*)RUNTIME_CLASS(CViewTest2)->CreateObject();
pWnd2->Create(nullptr, nullptr, LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE, CRect(0, 0, 300, 300), this, 2, pContext);
pWnd2->SetFont(&afxGlobalData.fontRegular);
m_wndTabs.AddTab(pWnd1, L"Tab 1");
m_wndTabs.AddTab(pWnd2, L"Tab 2");
m_wndTabs.SetActiveTab(1);
m_wndTabs.SetActiveTab(0);
parent
cView测试1
查看测试2
视图类
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
if (m_wndTabs)
m_wndTabs.SetWindowPos(nullptr, -1, -1, cx, cy, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
}
现在,当我将一个子帧拖动到另一个子帧上并向后拖动时:控件选项卡的行为如预期的那样,但cView Test1对象(在活动选项卡上)不获取OnDraw()。看起来是这样的:
