16,472
社区成员
发帖
与我相关
我的任务
分享
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if (!m_wndSplitter.CreateStatic(this, 3, 1)) {
AfxMessageBox("Fail to create spitterbar!");
return FALSE;
};
CRect cr;
GetClientRect(&cr);
// m_wndSplitter.CreateView(0, 0, pContext->m_pNewViewClass, CSize(200, 200), pContext);
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CPacketListView), CSize(cr.Width(), cr.Height() / 3), pContext);
m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CPacketTreeView), CSize(cr.Width(), cr.Height() / 3), pContext);
m_wndSplitter.CreateView(2, 0, RUNTIME_CLASS(CPacketHexView), CSize(cr.Width(), cr.Height() / 3), pContext);
m_bCreateSplitter = TRUE;
m_wndSplitter.RecalcLayout();
SetActiveView((CView *)m_wndSplitter.GetPane(0, 0));
return TRUE;
// return CFrameWnd::OnCreateClient(lpcs, pContext);
}
void CMainFrame::ShowView(int row)
{
int cur, min;
CRect rect;
GetClientRect(rect);
m_wndSplitter.GetRowInfo(row, cur, min);
if (row == 2) {
if (cur == 0) m_wndSplitter.SetRowInfo(1, rect.Height() / 3, min);
else m_wndSplitter.SetRowInfo(1, rect.bottom, min);
} else {
if (cur == 0) cur = rect.Height() / 3;
else cur = 0;
m_wndSplitter.SetRowInfo(row, cur, min);
}
m_wndSplitter.RecalcLayout();
}
m_wndSplitter_h.GetRowInfo( 0, cur, min );
m_wndSplitter_h.SetRowInfo( 0, r.bottom, min );
m_wndSplitter_v.GetColumnInfo( 0, cur, min );
m_wndSplitter_v.SetColumnInfo( 0, r.right, min );
m_wndSplitter_v.RecalcLayout();
m_wndSplitter_h.RecalcLayout();