www.gusucode.com > VC++建筑横梁数据管理系统源代码源码程序 > VC++建筑横梁数据管理系统源代码源码程序/code/PaneFrame.cpp
// PaneFrame.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "beamdatamanager.h" #include "BeamDataManagerDoc.h" #include "BeamDataManagerView.h" #include "PaneFrame.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPaneFrame IMPLEMENT_DYNCREATE(CPaneFrame, CFrameWnd) CPaneFrame::CPaneFrame() { } CPaneFrame::~CPaneFrame() { } BEGIN_MESSAGE_MAP(CPaneFrame, CFrameWnd) //{{AFX_MSG_MAP(CPaneFrame) //}}AFX_MSG_MAP ON_MESSAGE(WM_USER+50,OnSwitchView) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRightPaneFrame message handlers BOOL CPaneFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class BOOL rc; CRect cr; if (!m_wndSplitter.CreateStatic(this,2,1)){ TRACE0("Failed to create split bar "); return FALSE; // failed to create } GetClientRect(&cr); CSize paneSizeU(cr.Width(), 0.7*cr.Height()); CSize paneSizeD(cr.Width(), 0.3*cr.Height()); pContext->m_pCurrentFrame=this; pContext->m_pNewViewClass=RUNTIME_CLASS(CBeamDataManagerView); rc=m_wndSplitter.CreateView(0,0,pContext->m_pNewViewClass,paneSizeU, pContext); if(!rc) return FALSE; rc=m_wndSplitter.CreateView(1,0,pContext->m_pNewViewClass,paneSizeD, pContext); if(!rc) return FALSE; m_wndSplitter.RecalcLayout(); m_wndSplitter.SetActivePane(0,0); return rc; // return CFrameWnd::OnCreateClient(lpcs, pContext); } void CPaneFrame::SetViewTitle(LPCTSTR titlename,UINT isUpOrDown) { switch(isUpOrDown){ case 0: ((CBeamDataManagerView *)m_wndSplitter.GetPane(0,0))->m_TableName=titlename; break; case 1: ((CBeamDataManagerView *)m_wndSplitter.GetPane(1,0))->m_TableName=titlename; break; default: break; } } LRESULT CPaneFrame::OnSwitchView(WPARAM wParam,LPARAM lParam) { CRect cr; CCreateContext Context; if((CString)(LPCTSTR)wParam=="-"||(CString)(LPCTSTR)wParam=="\0") return 0; Context.m_pNewViewClass=RUNTIME_CLASS(CBeamDataManagerView); Context.m_pCurrentDoc=m_pDoc; Context.m_pCurrentFrame=this; Context.m_pNewDocTemplate=Context.m_pCurrentDoc->GetDocTemplate(); switch(atoi((LPCTSTR)wParam)){ case 0: m_wndSplitter.GetPane(0,0)->GetClientRect(&cr); m_wndSplitter.DeleteView(0,0); m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CBeamDataManagerView),\ CSize(cr.Width(),cr.Height()),\ &Context); SetViewTitle((LPCTSTR)lParam,0); ((CView *)m_wndSplitter.GetPane(0,0))->OnInitialUpdate(); break; case 1: m_wndSplitter.GetPane(1,0)->GetClientRect(&cr); m_wndSplitter.DeleteView(1,0); m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CBeamDataManagerView),\ CSize(cr.Width(),cr.Height()),\ &Context); SetViewTitle((LPCTSTR)lParam,1); ((CView *)m_wndSplitter.GetPane(1,0))->OnInitialUpdate(); break; default: break; } GetParentFrame()->RecalcLayout(); RecalcLayout(); m_wndSplitter.RecalcLayout(); m_wndSplitter.SetActivePane(0,0); return 0; }