0
CreateStatic & CreateViewを使用して、ボタンコントロールを使用して複数のペイン(1x2、3x3など)に「C(クラス名)ビュー」を分割します。と列。 I(私はすべてのペインを削除することを意味します)1×1をクリックして、ASSERT(n_Row> 1 & & n_Colが> 1)明らかにCSplitterWnd :: CreateStaticの内側に失敗した今すべての静的分割ペインを削除する(1x1ビュー)
、。
「ノーペイン」の状況をどのように処理しますか?
これは(ペインを除去)DisplaySingleFrame()関数
CN00bSplitApp* pApp = (CN00bSplitApp*)AfxGetApp();
CView * pActiveView = NULL;
if(pActiveView == NULL)
{
if(m_pSplitter)
pActiveView = (CView*)m_pSplitter->GetPane(0,0);
else
pActiveView = (CN00bSplitView *)GetActiveView();
}
m_iPrevColLayout = m_iRowLayout;
m_iPrevRowLayout = m_iColLayout;
m_iRowLayout = 0;
m_iColLayout = 0;
ShowWindow(SW_HIDE);
CRect rect(0,0,0,0);
pActiveView->GetClientRect(rect);
CDocument * pDoc= pActiveView->GetDocument();
pActiveView->DestroyWindow();
pActiveView = NULL;
if(m_pSplitter)
{
m_pSplitter->DestroyWindow();
delete m_pSplitter;
m_pSplitter = NULL;
}
CDocTemplate* pDocTemplate = pApp->m_pDocTemplate;
CCreateContext context;
context.m_pNewViewClass= RUNTIME_CLASS(CN00bSplitView);
context.m_pCurrentDoc=(CN00bSplitDoc*)pDocTemplate->CreateNewDocument();
context.m_pLastView=pActiveView;
CView* p = (CView*)CreateView(&context, AFX_IDW_PANE_FIRST);
SetActiveView(p);
p->OnInitialUpdate();
RecalcLayout();
ShowWindow(SW_SHOW);
これはで未処理の例外をスローしている "context.m_pCurrentDoc =(CN00bSplitDoc *)pDocTemplate-> CreateNewDocument();"
pDocTemplateがNULLです。したがって、明らかに未処理の例外がスローされます。 – esh