www.pudn.com > SpliterView.rar > SpliterViewView.cpp


// SpliterViewView.cpp : implementation of the CSpliterViewView class 
// 
 
#include "stdafx.h" 
#include "SpliterView.h" 
 
#include "SpliterViewDoc.h" 
#include "SpliterViewView.h" 
#include "MainFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CSpliterViewView 
 
IMPLEMENT_DYNCREATE(CSpliterViewView, CFormView) 
 
BEGIN_MESSAGE_MAP(CSpliterViewView, CFormView) 
	//{{AFX_MSG_MAP(CSpliterViewView) 
	ON_WM_PAINT() 
	ON_COMMAND(ID_4C, On4c) 
	ON_COMMAND(ID_8C, On8c) 
	ON_COMMAND(ID_12C, On12c) 
	ON_COMMAND(ID_16C, On16c) 
	ON_WM_TIMER() 
	ON_COMMAND(ID_KILLTIMER, OnKilltimer) 
	ON_COMMAND(ID_SETTIMER, OnSettimer) 
	//}}AFX_MSG_MAP 
	// Standard printing commands 
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint) 
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint) 
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview) 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CSpliterViewView construction/destruction 
 
CSpliterViewView::CSpliterViewView() 
	: CFormView(CSpliterViewView::IDD) 
{ 
	//{{AFX_DATA_INIT(CSpliterViewView) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
	// TODO: add construction code here 
 
} 
 
CSpliterViewView::~CSpliterViewView() 
{ 
} 
 
void CSpliterViewView::DoDataExchange(CDataExchange* pDX) 
{ 
	CFormView::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CSpliterViewView) 
		// NOTE: the ClassWizard will add DDX and DDV calls here 
	//}}AFX_DATA_MAP 
} 
 
BOOL CSpliterViewView::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
 
	return CFormView::PreCreateWindow(cs); 
} 
 
void CSpliterViewView::OnInitialUpdate() 
{ 
	CFormView::OnInitialUpdate(); 
	GetParentFrame()->RecalcLayout(); 
	ResizeParentToFit(); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CSpliterViewView printing 
 
BOOL CSpliterViewView::OnPreparePrinting(CPrintInfo* pInfo) 
{ 
	// default preparation 
	return DoPreparePrinting(pInfo); 
} 
 
void CSpliterViewView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) 
{ 
	// TODO: add extra initialization before printing 
} 
 
void CSpliterViewView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) 
{ 
	// TODO: add cleanup after printing 
} 
 
void CSpliterViewView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/) 
{ 
	// TODO: add customized printing code here 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CSpliterViewView diagnostics 
 
#ifdef _DEBUG 
void CSpliterViewView::AssertValid() const 
{ 
	CFormView::AssertValid(); 
} 
 
void CSpliterViewView::Dump(CDumpContext& dc) const 
{ 
	CFormView::Dump(dc); 
} 
 
CSpliterViewDoc* CSpliterViewView::GetDocument() // non-debug version is inline 
{ 
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSpliterViewDoc))); 
	return (CSpliterViewDoc*)m_pDocument; 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CSpliterViewView message handlers 
 
void CSpliterViewView::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	// TODO: Add your message handler code here 
	 
	// Do not call CFormView::OnPaint() for painting messages 
} 
 
void CSpliterViewView::On4c()  
{ 
	// TODO: Add your command handler code here 
	CRect rc; 
	CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent();  
	MainFrame->GetClientRect(&rc); 
	int nWidth=rc.Width(); 
	MainFrame->m_wndSplitter.SetColumnInfo(0,nWidth-160,0); 
	MainFrame->SetActiveView((CView*)MainFrame->m_wndSplitter.GetPane(0,1)); 
	MainFrame->m_wndSplitter.RecalcLayout(); 
	MainFrame=NULL; 
	 
	for(int i=0;i<16;i++) 
	{ 
		m_VideoWnd[i].DestroyWindow(); 
//		m_VideoWnd[i].MyKillTimer(); 
//		m_VideoWnd[i].MySetTimer(); 
	} 
	for(i=0;i<1;i++) 
	{ 
		for(int j=0;j<4;j++) 
		{ 
			m_VideoWnd[i*4+j].Create("", WS_CHILD | WS_VISIBLE |WS_BORDER, 
				   CRect(0+i*160, 0+j*120, 160+i*160, 120+j*120), this, 1000+i*4+j); 
		} 
	} 
} 
 
void CSpliterViewView::On8c()  
{ 
	// TODO: Add your command handler code here 
	CRect rc; 
	CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent();  
	MainFrame->GetClientRect(&rc); 
	int nWidth=rc.Width(); 
	MainFrame->m_wndSplitter.SetColumnInfo(0,nWidth-160*2,0); 
	MainFrame->SetActiveView((CView*)MainFrame->m_wndSplitter.GetPane(0,1)); 
	MainFrame->m_wndSplitter.RecalcLayout(); 
	MainFrame=NULL; 
	 
	for(int i=0;i<16;i++) 
		m_VideoWnd[i].DestroyWindow(); 
	for(i=0;i<2;i++) 
	{ 
		for(int j=0;j<4;j++) 
		{ 
			m_VideoWnd[i*4+j].Create("", WS_CHILD | WS_VISIBLE |WS_BORDER, 
				   CRect(0+i*160, 0+j*120, 160+i*160, 120+j*120), this, 1000+i*4+j); 
		} 
	} 
} 
 
void CSpliterViewView::On12c()  
{ 
	// TODO: Add your command handler code here 
	CRect rc; 
	CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent();  
	MainFrame->GetClientRect(&rc); 
	int nWidth=rc.Width(); 
	MainFrame->m_wndSplitter.SetColumnInfo(0,nWidth-160*3,0); 
	MainFrame->SetActiveView((CView*)MainFrame->m_wndSplitter.GetPane(0,1)); 
	MainFrame->m_wndSplitter.RecalcLayout(); 
	MainFrame=NULL; 
	 
	for(int i=0;i<16;i++) 
		m_VideoWnd[i].DestroyWindow(); 
	for(i=0;i<3;i++) 
	{ 
		for(int j=0;j<4;j++) 
		{ 
			m_VideoWnd[i*4+j].Create("", WS_CHILD | WS_VISIBLE |WS_BORDER, 
				   CRect(0+i*160, 0+j*120, 160+i*160, 120+j*120), this, 1000+i*4+j); 
		} 
	}	 
} 
 
void CSpliterViewView::On16c()  
{ 
	// TODO: Add your command handler code here 
	CRect rc; 
	CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent();  
	MainFrame->GetClientRect(&rc); 
	int nWidth=rc.Width(); 
	MainFrame->m_wndSplitter.SetColumnInfo(0,nWidth-160*4,0); 
	MainFrame->SetActiveView((CView*)MainFrame->m_wndSplitter.GetPane(0,1)); 
	MainFrame->m_wndSplitter.RecalcLayout(); 
	MainFrame=NULL; 
	 
	for(int i=0;i<16;i++) 
		m_VideoWnd[i].DestroyWindow(); 
	for(i=0;i<4;i++) 
	{ 
		for(int j=0;j<4;j++) 
		{ 
			m_VideoWnd[i*4+j].Create("", WS_CHILD | WS_VISIBLE |WS_BORDER, 
				   CRect(0+i*160, 0+j*120, 160+i*160, 120+j*120), this, 1000+i*4+j); 
		} 
	}	 
} 
 
void CSpliterViewView::OnTimer(UINT nIDEvent)  
{ 
	// TODO: Add your message handler code here and/or call default 
	int i; 
	for(i=0;i<1;i++) 
	{ 
		int j = rand()%16; 
		::PostMessage(m_VideoWnd[j].GetSafeHwnd(),WM_TIMER,1,0); 
	} 
	CFormView::OnTimer(nIDEvent); 
} 
 
void CSpliterViewView::OnKilltimer()  
{ 
	// TODO: Add your command handler code here 
	KillTimer(m_nTimer); 
} 
 
void CSpliterViewView::OnSettimer()  
{ 
	// TODO: Add your command handler code here 
	m_nTimer = SetTimer(1,50,0); 
}