📄 mymp4testdlg.cpp
字号:
// MYMP4TESTDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MYMP4TEST.h"
#include "MYMP4TESTDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define DIM(x) ( sizeof((x)) / sizeof((x)[0]) )
/////////////////////////////////////////////////////////////////////////////
// CMYMP4TESTDlg dialog
CMYMP4TESTDlg::CMYMP4TESTDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMYMP4TESTDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMYMP4TESTDlg)
m_String1 = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMYMP4TESTDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMYMP4TESTDlg)
DDX_Control(pDX, IDC_MEDIAPLAYER1, m_ActiveMovie);
DDX_Text(pDX, IDC_EDIT1, m_String1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMYMP4TESTDlg, CDialog)
//{{AFX_MSG_MAP(CMYMP4TESTDlg)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_KEYDOWN()
ON_BN_CLICKED(IDC_READ, OnRead)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMYMP4TESTDlg message handlers
BOOL CMYMP4TESTDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
::SetWindowPos(this->GetSafeHwnd(), HWND_TOPMOST,0, 0,
800, 600,SWP_SHOWWINDOW); //设置窗口为800X600
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
SetToolRectangle();
b_openfile=m_File.Open(_T("\\Storage Card\\123.txt"),CFile::modeRead);
if(!b_openfile)
AfxMessageBox(L"不能打开文件.");
return TRUE; // return TRUE unless you set the focus to a control
}
void CMYMP4TESTDlg::DrawInterface(CDC &dc)
{
CDC memDC ;
memDC.CreateCompatibleDC ( &dc ) ;
CBitmap* pBitmap ; //load all bitmap
CBitmap* pOldBitmap ; //save old bitmap temp
/////////////////////////////////////////////////
//分配bitmap对象内存
pBitmap = new CBitmap ;
pBitmap ->LoadBitmap ( IDB_OPEN) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
dc.BitBlt ( m_rect[0].TopLeft().x, m_rect[0].TopLeft().y, 128, 128, &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
delete pBitmap ;
//////////////////////////////////////////////
//.............................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
pBitmap ->LoadBitmap ( IDB_PLAY ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
dc.BitBlt ( m_rect[1].TopLeft().x, m_rect[1].TopLeft().y, 128, 128, &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
delete pBitmap ;
//...............................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
pBitmap ->LoadBitmap ( IDB_PAUSE ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
dc.BitBlt ( m_rect[2].TopLeft().x, m_rect[2].TopLeft().y, 128, 128, &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
delete pBitmap ;
//................................................................
//分配bitmap对象内存
pBitmap = new CBitmap ;
pBitmap ->LoadBitmap ( IDB_STOP ) ;
pOldBitmap = memDC.SelectObject ( pBitmap ) ;
dc.BitBlt ( m_rect[3].TopLeft().x, m_rect[3].TopLeft().y, 128, 128, &memDC, 0, 0, SRCCOPY ) ;
memDC.SelectObject ( pOldBitmap ) ;
delete pBitmap ;
//................................................................
memDC.DeleteDC () ;
}
void CMYMP4TESTDlg::SetToolRectangle()
{
m_rect[0].SetRect(0,50,128,178);//OPEN
m_rect[1].SetRect(150,50,278,178);//PLAY
m_rect[2].SetRect(300,50,428,178);//PAUSE
m_rect[3].SetRect(450,50,578,178);//STOP
}
void CMYMP4TESTDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
DrawInterface(dc);
// Do not call CDialog::OnPaint() for painting messages
}
void CMYMP4TESTDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnLButtonDown(nFlags, point);
}
void CMYMP4TESTDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
for ( int i = 0 ; i < 4 ; i ++ )
{
if ( m_rect[i].PtInRect (point) )
{
switch (i)
{
case 0:
Btn_Open();
break ;
case 1:
Btn_Play();
break;
case 2:
Btn_Pause();
break ;
case 3:
Btn_Stop();
break ;
}
}
}
CDialog::OnLButtonUp(nFlags, point);
}
void CMYMP4TESTDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CMYMP4TESTDlg::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
void CMYMP4TESTDlg::Btn_Open()
{
CString szFileFilter("All File(*.*)|*.*||");//文件类型过滤
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
CString path="\\Storage card\\";
dlg.m_ofn.lpstrInitialDir= path; //指定文件夹
if(dlg.DoModal()==IDOK){
CString PathName=dlg.GetPathName();
PathName.MakeUpper();
m_ActiveMovie.SetFileName(PathName);
}
}
void CMYMP4TESTDlg::Btn_Play()
{
CString strTemp;
GetLine(strTemp);
m_ActiveMovie.SetFileName(strTemp);
m_ActiveMovie.Play();//播放文件
//m_ActiveMovie.ShowWindow(TRUE);//打开视频播放窗口
}
void CMYMP4TESTDlg::Btn_Pause()
{
m_ActiveMovie.Pause();//暂停播放
}
void CMYMP4TESTDlg::Btn_Stop()
{
m_ActiveMovie.Stop();//停止播放文件
}
void CMYMP4TESTDlg::OnRead()
{
// TODO: Add your control notification handler code here
CString strTemp;
// CString temp;
// char pBuf[512];
// CString path=_T("\\Storage card\\4.avi");
//GetLine(strTemp);
// int i=path.GetLength();
// sprintf(pBuf, "%d", i); //产生"123"
// m_String1=path;
// UpdateData(FALSE);
// LPCTSTR path;
//char c[1];
//char pBuf[512];
//char *ps;
//ps=pBuf;
//DWORD dwFileLen;
/*
char *pBuf;
CFile file(TEXT("\\Storage Card\\123.txt"),CFile::modeRead); //只读
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Read(pBuf,dwFileLen);
file.Close();
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen];
*/
/*
CFile file(TEXT("\\Storage Card\\123.txt"),CFile::modeRead); //只读
while(file.Read(c,1)>0)
{
if(c[0] == 0xd)
{
file.Read(c,1);
break;
}
*ps++=c[0];
}
*ps=0;
file.Close();
*/
if(b_openfile)
{
if(GetLine(strTemp)) //得到一行数据
{
m_String1=strTemp;
UpdateData(FALSE);
}
else
{
AfxMessageBox(L"读文件结束.");
m_File.Close();
b_openfile=m_File.Open(_T("\\Storage Card\\123.txt"),CFile::modeRead);
if(!b_openfile)
AfxMessageBox(L"不能打开文件.");
}
}
else
AfxMessageBox(L"文件不存在.");
}
int CMYMP4TESTDlg::GetLine(CString &strLine)//得到文本文件一行数据
{
char c[1];
strLine.Empty();
while(m_File.Read(c,1)>0){
if(c[0] == KEY_ENTER){//一行结束时有回车换行符号0x0d 0x0a
m_File.Read(c,1);
return 1;
}
strLine+=c[0];
}
if(strLine.GetLength()>0){
return 1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -