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

📄 simpleplayerdlg.cpp

📁 一个在WinCE下的媒体播放器
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    TCHAR szPosition[64], szCurrentString[64];
    wsprintf(szPosition, _T("%02d:%02d\0"), nMinutes, nSeconds);

    // Read current string and compare to the new string.  To prevent flicker,
    // don't update this label unless the string has changed.

    m_StrPosition.GetWindowText(szCurrentString, 24);

    if (_tcscmp(szCurrentString, szPosition))
        m_StrPosition.SetWindowText(szPosition);
}



int aflag=1;
void CSimplePlayerDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	   
	// TODO: Add your message handler code here
	CDC memDC;
	CBitmap bmBkgnd;
	bmBkgnd.Attach( m_hBmBkgnd );

	memDC.CreateCompatibleDC(&dc);
	CBitmap *pOldBm = memDC.SelectObject( &bmBkgnd );

	BITMAP bm;
	bmBkgnd.GetObject(sizeof(bm), &bm);
	

	dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY );
	memDC.SelectObject( pOldBm );
	bmBkgnd.Detach();

	if(first_in_volume==1)
	{
		waveOutGetVolume(0,&AudiuAmpFactor);
	    nowshow=(int)(AudiuAmpFactor >> 12) & 0x000f;

		m_SliderVolume.SetPos(nowshow);
		m_SliderVolume.SetSelection(0, nowshow);
		m_SliderVolume.SetSelectionColor(RGB(85, 145, 225));
		first_in_volume=0;
	}

    if(aflag==1)
	{  
		aflag=0;
        GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);  
	    if((rflag=fnFileViewer_Invoke(GetDlgItem(IDD_SIMPLEPLAYER_DIALOG)))==1)
		{
   		   unsigned short *pFilePath = fnFileViewer_GetCurFilePath();
		   unsigned short *pFileName = fnFileViewer_GetCurFileName();
		   FileName1=pFileName;
		   m_text.SetWindowText(FileName1);
		   wcscpy(FilePath1.GetBuffer(128),pFilePath);

		   CSimplePlayerDlg::CreateGraph(FilePath1);

		   GetDlgItem(IDC_VIDEO_WINDOW)->EnableWindow(TRUE);
		   DisplayFileDuration();     
					   
		    len=FileName1.GetLength();
            m_nCount=len;
            if(len>=9)
			{
				   CString pp=L"                           ";
			       pp=pp+FileName1;
				   FileName1=pp;
				   len=FileName1.GetLength();
	    	       m_RollTimer=SetTimer(ROLL_TIMER, 300, NULL);
			}
	        else
			{
                   m_text.SetWindowText(FileName1);
			}

		ButtonPlayPause.LoadBitmaps(IDB_PAUSE1,IDB_PAUSE0);
		ButtonPlayPause.RedrawWindow();
        ButtonStop.LoadBitmaps(IDB_STOP1,IDB_STOP0);
        ButtonStop.RedrawWindow();
    	ButtonPreview.LoadBitmaps(IDB_PREVIEW1,IDB_PREVIEW0);
		ButtonPreview.RedrawWindow();
    	ButtonNext.LoadBitmaps(IDB_NEXT1,IDB_NEXT0);
		ButtonNext.RedrawWindow();

		((CButton*)GetDlgItem(ID_BUTTON_OPEN))->EnableWindow(true);    
	    ((CButton*)GetDlgItem(ID_BUTTON_STOP))->EnableWindow(true); 
	    ((CButton*)GetDlgItem(ID_BUTTON_PLAY))->EnableWindow(true); 
	    ((CButton*)GetDlgItem(ID_BUTTON_PREVIEW))->EnableWindow(true);
	    ((CButton*)GetDlgItem(ID_BUTTON_NEXT))->EnableWindow(true);
       
         m_flag1=false;
         m_FilterGraph->Run();

		 if (m_SliderTimer == 0)
		   {
		       m_SliderTimer = SetTimer(SLIDER_TIMER, 100, NULL);
		   }
		}
		else
		{
			if(rflag==-1)
				SetControlEnable(false);
			else
				ExitProcess(0);
		}
 	}



	if(value==1)
	{
		if( FilePath1==L"")
		{
			if(rflag==1)
			{
				m_SliderVolume.RedrawWindow();
				GetDlgItem(IDC_VOL)->RedrawWindow();
				GetDlgItem(IDC_VOLBOT)->RedrawWindow();
			    SetControlEnable(true);
			}
		}
		else
		{
		   if(m_FilterGraph->IsPaused())
		   {
              if(m_FilterGraph->GetFullScreen()==0)
			  {
				ButtonPlayPause.LoadBitmaps(IDB_PLAY1,IDB_PLAY0);
		        ButtonPlayPause.RedrawWindow();
		        ButtonOpen.LoadBitmaps(IDB_OPEN1,IDB_OPEN0);
		        ButtonOpen.RedrawWindow();
				m_SliderVolume.RedrawWindow();
				GetDlgItem(IDC_VOL)->RedrawWindow();
				GetDlgItem(IDC_VOLBOT)->RedrawWindow();
		        ButtonPreview.LoadBitmaps(IDB_PREVIEW1,IDB_PREVIEW0);
	            ButtonPreview.RedrawWindow();
                ButtonStop.LoadBitmaps(IDB_STOP1,IDB_STOP0);
                ButtonStop.RedrawWindow();
    	        ButtonNext.LoadBitmaps(IDB_NEXT1,IDB_NEXT0);
		        ButtonNext.RedrawWindow();
			  }
		   }
		   else
		   { 
			 ButtonPlayPause.LoadBitmaps(IDB_PAUSE1,IDB_PAUSE0);
		     ButtonPlayPause.RedrawWindow();
		     ButtonOpen.LoadBitmaps(IDB_OPEN1,IDB_OPEN0);
		     ButtonOpen.RedrawWindow();
			 m_SliderVolume.RedrawWindow();
			 GetDlgItem(IDC_VOL)->RedrawWindow();
			 GetDlgItem(IDC_VOLBOT)->RedrawWindow();
		     ButtonPreview.LoadBitmaps(IDB_PREVIEW1,IDB_PREVIEW0);
	         ButtonPreview.RedrawWindow();
             ButtonStop.LoadBitmaps(IDB_STOP1,IDB_STOP0);
             ButtonStop.RedrawWindow();
    	     ButtonNext.LoadBitmaps(IDB_NEXT1,IDB_NEXT0);
		     ButtonNext.RedrawWindow();
		  }
		}
	}
	else
	{   
		GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);
	    SetControlEnable(false);
		m_SliderVolume.RedrawWindow();
		GetDlgItem(IDC_VOL)->RedrawWindow();
		GetDlgItem(IDC_VOLBOT)->RedrawWindow();
	}
	
  	// Do not call CDialog::OnPaint() for painting messages
}

LRESULT CSimplePlayerDlg::OnCtlColorStatic(WPARAM wParam, LPARAM lParam)
{
	HDC hDCStatic = (HDC) wParam;
	HWND hWndCtrl = (HWND) lParam;
	
	UINT nID = ::GetDlgCtrlID( hWndCtrl );
	
	::SetBkMode( hDCStatic, TRANSPARENT );
	::SetTextColor(hDCStatic,RGB(255,255,255));
	switch( nID )
	{
	case IDC_TEXT:	            return (LRESULT)m_hBrCtl[0];
	case IDC_STATIC_POSITION:	return (LRESULT)m_hBrCtl[1];
	case IDC_STATIC_DURATION:	return (LRESULT)m_hBrCtl[2];
	case IDC_SLIDER_GRAPH:	    return (LRESULT)m_hBrCtl[3];
	case IDC_SLIDER_VOLUME:	    return (LRESULT)m_hBrCtl[4];
	}
	return 0;
}



LRESULT CSimplePlayerDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	if(message == 0x00000219)
	{
		switch(wParam)
		{
		case 0x00008000:
			{
			value =1;
			rflag=1;
			SetControlEnable(value);
			fnFileViewer_ExternMemory_RefreshFlag_Set();
			break;
			}
		case 0x00008004:
			{
			value =0;
			rflag=0;
			card=1;
		    SetControlEnable(value);
			GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);
			m_StrPosition.SetWindowText(L"00:00 ");
			m_SliderGraph.SetPos(0);

			break;
			}
		default:
			AfxMessageBox(L"Lost!");
		}
	}
	return CDialog::WindowProc(message, wParam, lParam);
}


void CSimplePlayerDlg::SetControlEnable(bool aValue)
{
	if(aValue == 1)
	{
	ButtonPlayPause.LoadBitmaps(IDB_PLAY2,IDB_PLAY2);
	ButtonOpen.LoadBitmaps(IDB_OPEN1,IDB_OPEN0);  
	ButtonStop.LoadBitmaps(IDB_STOP2,IDB_STOP2);
	ButtonPreview.LoadBitmaps(IDB_PREVIEW2,IDB_PREVIEW2);
	ButtonNext.LoadBitmaps(IDB_NEXT2,IDB_NEXT2);

	ButtonPlayPause.RedrawWindow();
	ButtonOpen.RedrawWindow();
	ButtonStop.RedrawWindow();
	ButtonPreview.RedrawWindow();
	ButtonNext.RedrawWindow();

	((CButton*)GetDlgItem(ID_BUTTON_OPEN))->EnableWindow(aValue);    
	((CButton*)GetDlgItem(ID_BUTTON_PLAY))->EnableWindow(0); 
	((CButton*)GetDlgItem(ID_BUTTON_STOP))->EnableWindow(0); 
	((CButton*)GetDlgItem(ID_BUTTON_PREVIEW))->EnableWindow(0);
	((CButton*)GetDlgItem(ID_BUTTON_NEXT))->EnableWindow(0);
	GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);

	FileName1=L"VIDEO NAME";
	FilePath1=L"";

	GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);
	PROCESS5=GetDlgItem(IDC_ENDPRO)->GetSafeHwnd();
	::SetFocus(PROCESS5);

	m_SliderGraph.SetPos(0);
	m_SliderGraph.SetSelection(0, 0);
	m_SliderGraph.SetSelectionColor(RGB(85, 145, 225));
	m_SliderGraph.SetChannelColor(RGB(163,193,233));
	
	return ;
	}

	if(aValue == 0)
	{
	ButtonPlayPause.LoadBitmaps(IDB_PLAY2,IDB_PLAY2);
	ButtonOpen.LoadBitmaps(IDB_OPEN2,IDB_OPEN2);
	ButtonPreview.LoadBitmaps(IDB_PREVIEW2,IDB_PREVIEW2);
    ButtonStop.LoadBitmaps(IDB_STOP2,IDB_STOP2);
	ButtonNext.LoadBitmaps(IDB_NEXT2,IDB_NEXT2);

	ButtonPlayPause.RedrawWindow();
	ButtonOpen.RedrawWindow();
    ButtonPreview.RedrawWindow();
	ButtonStop.RedrawWindow();
	ButtonNext.RedrawWindow();

	((CButton*)GetDlgItem(ID_BUTTON_PLAY))->EnableWindow(aValue); 
	((CButton*)GetDlgItem(ID_BUTTON_OPEN))->EnableWindow(aValue);  
	((CButton*)GetDlgItem(ID_BUTTON_PREVIEW))->EnableWindow(aValue);
	((CButton*)GetDlgItem(ID_BUTTON_STOP))->EnableWindow(aValue); 
	((CButton*)GetDlgItem(ID_BUTTON_NEXT))->EnableWindow(aValue);
	GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);

	m_text.SetWindowText(L"VIDEO NAME");
	m_StrDuration.SetWindowText(L" / 00:00");
    m_ptext=L"VIDEO NAME";
	FileName1=L"VIDEO NAME";
	KillTimer(m_RollTimer);
	FilePath1=L"";

	GetDlgItem(IDC_VIDEO_WINDOW)->ShowWindow(SW_HIDE);
	PROCESS5=GetDlgItem(IDC_ENDPRO)->GetSafeHwnd();
	::SetFocus(PROCESS5);
    
	m_SliderGraph.SetPos(0);
	m_SliderGraph.SetSelection(0, 0);
	m_SliderGraph.SetSelectionColor(RGB(85, 145, 225));
	m_SliderGraph.SetChannelColor(RGB(163,193,233));

	return ;
	}
}


BOOL CSimplePlayerDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class

	 if(pMsg->message==WM_KEYDOWN  )//&& pMsg->wParam==VK_RETURN
   {   
     switch(pMsg->wParam)   
	 {   
		case VK_ADD:
			{
			  first_in_volume=1;
		      if(value==1)
			   {
				  if(FilePath1==L"")
				  {
			          if(rflag==1)
			          SetControlEnable(true);
				  }
				  else
				  {
				    if(m_FilterGraph->IsPaused())
					{
				      if(m_FilterGraph->GetFullScreen())
					  {
					  m_FilterGraph->SetFullScreen(FALSE);
				      m_FilterGraph->SetDisplayWindow(m_VideoWindow.GetSafeHwnd());
					  m_FilterGraph->SetNotifyWindow(this->GetSafeHwnd());
					  }
					}
				    if(m_FilterGraph->GetFullScreen())
					{	
				      m_FilterGraph->Pause();
    			      m_FilterGraph->SetFullScreen(FALSE);
				      m_FilterGraph->SetDisplayWindow(m_VideoWindow.GetSafeHwnd());
		              m_FilterGraph->SetNotifyWindow(this->GetSafeHwnd());
                      m_FilterGraph->Run();
					}
				  }
				  PROCESS5=GetSafeHwnd();
				  ::ShowWindow(PROCESS5,SW_HIDE);
			}
		    else
			{
			    PROCESS5=GetSafeHwnd();
				::ShowWindow(PROCESS5,SW_HIDE);
			}
			  break;
		}
		case VK_VOLUME_DOWN:
			{ 
			  if(nowshow>0)
			  {
				nowshow--;
				m_SliderVolume.SetPos(nowshow);
                m_FilterGraph->SetAudioVol(nowshow*4369);
				SaveVolume();
		        m_SliderVolume.SetSelection(0, nowshow);
		        m_SliderVolume.SetSelectionColor(RGB(85, 145, 225));
			  }
			    break;
			}
		case VK_VOLUME_UP:
			{
			  if(nowshow<15)
			  {
			    nowshow++;
		        m_SliderVolume.SetPos(nowshow);
				m_FilterGraph->SetAudioVol(nowshow*4369);
				SaveVolume();
				m_SliderVolume.SetSelection(0, nowshow);
		        m_SliderVolume.SetSelectionColor(RGB(85, 145, 225));
			  }
				break;			
			}
	 } 
  }
	return CDialog::PreTranslateMessage(pMsg);
}

void CSimplePlayerDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
		
		// Clean Up.. 
	::DeleteObject( m_hBmBkgnd );
	::DeleteObject( m_hBrCtl[0] );
	::DeleteObject( m_hBrCtl[1] );
	::DeleteObject( m_hBrCtl[2] );
	::DeleteObject( m_hBrCtl[3] );
	::DeleteObject( m_hBrCtl[4] );
}

void CSimplePlayerDlg::OnEndpro() 
{
// TODO: Add your control notification handler code here
	FreeLibrary(hdll);
	ExitProcess(0);
}

⌨️ 快捷键说明

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