📄 filmdlg.cpp
字号:
// FilmDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ControlTest.h"
#include "FilmDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFilmDlg dialog
CFilmDlg::CFilmDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFilmDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFilmDlg)
//}}AFX_DATA_INIT
}
void CFilmDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFilmDlg)
DDX_Control(pDX, IDC_SLIDER, m_Slider);
DDX_Control(pDX, IDC_STOP, m_Stop);
DDX_Control(pDX, IDC_PROGRESS, m_Progress);
DDX_Control(pDX, IDC_PLAY, m_Play);
DDX_Control(pDX, IDC_ANIMATE, m_Animate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFilmDlg, CDialog)
//{{AFX_MSG_MAP(CFilmDlg)
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
ON_BN_CLICKED(IDC_PLAY, OnPlay)
ON_BN_CLICKED(IDC_STOP, OnStop)
ON_WM_DESTROY()
ON_WM_TIMER()
ON_WM_HSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFilmDlg message handlers
void CFilmDlg::OnBrowse()
{
// TODO: Add your control notification handler code here
CFileDialog fd(TRUE,NULL,NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Avi files(*.avi)|*.avi|All files(All files)|*.*||"
);
if(fd.DoModal()==IDOK)
{
m_FileName=fd.GetPathName();
m_Animate.Open(m_FileName);
m_CurFrame=0;
m_Progress.SetPos(10-m_CurFrame);
m_Slider.SetPos(m_CurFrame);
}
}
void CFilmDlg::OnPlay()
{
// TODO: Add your control notification handler code here
if(m_FileName=="")
{
return;
}
if(m_CurFrame==10)
{
m_CurFrame=0;
}
m_Animate.Seek(m_CurFrame);
SetTimer(1,2,NULL);
}
void CFilmDlg::OnStop()
{
// TODO: Add your control notification handler code here
m_Animate.Stop();
m_Animate.Seek(0);
m_Progress.SetPos(10);
m_Slider.SetPos(0);
m_CurFrame=0;
KillTimer(1);
}
void CFilmDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
m_CurFrame++;
m_Animate.Play(m_CurFrame,m_CurFrame,0);
m_Progress.SetPos(10-m_CurFrame);
m_Slider.SetPos(m_CurFrame);
if(m_CurFrame==10)
{
m_CurFrame=0;
}
CDialog::OnTimer(nIDEvent);
}
BOOL CFilmDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_Play.LoadBitmaps(IDB_PLAY_UP,IDB_PLAY_DOWN,IDB_PLAY_FOCUS);
m_Play.SizeToContent();
m_Stop.LoadBitmaps(IDB_STOP_UP,IDB_STOP_DOWN,IDB_STOP_FOCUS);
m_Stop.SizeToContent();
m_CurFrame=0;
m_Progress.SetRange(0,10);
m_Progress.SetPos(10-m_CurFrame);
m_Slider.SetRange(0,10);
m_Slider.SetPos(m_CurFrame);
m_FileName="";
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFilmDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
m_Animate.Close();
}
void CFilmDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if(m_FileName=="")
{
return;
}
m_CurFrame=m_Slider.GetPos();
m_Animate.Seek(m_CurFrame);
m_Progress.SetPos(10-m_CurFrame);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -