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

📄 mymp4testdlg.cpp

📁 evc mp4播放器代码 au1200平台
💻 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 + -