⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animateview.cpp

📁 C++程序供初学者使用
💻 CPP
字号:
// AnimateView.cpp : implementation of the CAnimateView class
//

#include "stdafx.h"
#include "Animate.h"

#include "AnimateDoc.h"
#include "AnimateView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAnimateView

IMPLEMENT_DYNCREATE(CAnimateView, CView)

BEGIN_MESSAGE_MAP(CAnimateView, CView)
	//{{AFX_MSG_MAP(CAnimateView)
	ON_COMMAND(ID_OPEN1, OnOpen1)
	ON_COMMAND(ID_ANIMATE, OnAnimate)
	ON_COMMAND(ID_STOP, OnStop)
	ON_UPDATE_COMMAND_UI(ID_OPEN1, OnUpdateOpen1)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAnimateView construction/destruction

CAnimateView::CAnimateView()
{
	m_Animate=NULL; //初始化
	// TODO: add construction code here

}

CAnimateView::~CAnimateView()
{
}

BOOL CAnimateView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CAnimateView drawing

void CAnimateView::OnDraw(CDC* pDC)
{
	CAnimateDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CAnimateView printing

BOOL CAnimateView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CAnimateView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CAnimateView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CAnimateView diagnostics

#ifdef _DEBUG
void CAnimateView::AssertValid() const
{
	CView::AssertValid();
}

void CAnimateView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CAnimateDoc* CAnimateView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAnimateDoc)));
	return (CAnimateDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CAnimateView message handlers

void CAnimateView::OnOpen1() 
{
	    	//打开一个打开文件通用对话框
    	CFileDialog  dlg(TRUE,"avi",NULL,
                      OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		             "视频文件(*.avi)|*.avi|所有文件(*.*)|*.*||",this);
		dlg.m_ofn.lpstrTitle="打开视频文件";
	  if(dlg.DoModal()==IDCANCEL)
	    	return ;
    	//获取选择的视频文件的文件名
	    CString filename=dlg.GetPathName();
	
	   CRect rect;
       GetClientRect(rect);
       //给对象指针分配空间.
	   m_Animate=new CAnimateCtrl();
  	   //创建一个才CAnimateCtrl对象
       m_Animate->Create(WS_CHILD |WS_VISIBLE,rect,this,0);
	   //设置对象在视图窗口的位置
	   OffsetRect(rect,100,100);
	   m_Animate->MoveWindow(rect);
	   //打开视频文件
       m_Animate->Open(filename);
	
}

void CAnimateView::OnAnimate() 
{
	//播放视频文件
	    m_Animate->Play(0,-1,-1);
	
}

void CAnimateView::OnStop() 
{
	//停止播放视频文件
	m_Animate->Stop();
	//释放分配空间
	delete m_Animate;
	m_Animate=NULL;
}

void CAnimateView::OnUpdateOpen1(CCmdUI* pCmdUI) 
{
	      //如果已经打开了一个视频文件则菜单禁用
	     pCmdUI->Enable(m_Animate==NULL);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -