www.pudn.com > SpliterViewduoshipinxianshi.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&amt; 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&amt; 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(&amt;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(&amt;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(&amt;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(&amt;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);
}