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

📄 playerdlg.cpp

📁 播放H.264压缩算法文件(C++源程序)
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	
		//Remove WS_VISIBLE window style.
		pButton = (CButton *)GetDlgItem(IDC_PLAY);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);

		pButton = (CButton *)GetDlgItem(IDC_PAUSE);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);
		
		pButton = (CButton *)GetDlgItem(IDC_STOP);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);
		
		pButton = (CButton *)GetDlgItem(IDC_FAST);	
		pButton->ModifyStyle(WS_VISIBLE,0,0);
		
		pButton = (CButton *)GetDlgItem(IDC_GOTOEND);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);
	
		pButton = (CButton *)GetDlgItem(IDC_SLOW);	
		pButton->ModifyStyle(WS_VISIBLE,0,0);
	
		pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);

		pButton = (CButton *)GetDlgItem(IDC_SOUND);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);

		pButton = (CButton *)GetDlgItem(IDC_STEP);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);

		pButton = (CButton *)GetDlgItem(IDC_STEPBACK);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);

		pButton = (CButton *)GetDlgItem(IDC_CAPPIC);		
		pButton->ModifyStyle(WS_VISIBLE,0,0);


		m_SoundSlider.ModifyStyle(WS_VISIBLE,0,0);
		m_PlaySlider.ModifyStyle(WS_VISIBLE,0,0);
		m_SliderB.ModifyStyle(WS_VISIBLE,0,0);
		m_SliderC.ModifyStyle(WS_VISIBLE,0,0);
		m_SliderS.ModifyStyle(WS_VISIBLE,0,0);
		m_SliderH.ModifyStyle(WS_VISIBLE,0,0);

		pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);
		pStatic->ModifyStyle(WS_VISIBLE,0,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC2);
		pStatic->ModifyStyle(WS_VISIBLE,0,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC3);
		pStatic->ModifyStyle(WS_VISIBLE,0,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC4);
		pStatic->ModifyStyle(WS_VISIBLE,0,0);

		GetDlgItem(IDC_PLAYSTATETEXT)->ModifyStyle(WS_VISIBLE,0,0);

	}
	else
	{
		
		//hAppBar = FindWindowEx(0,0,"Shell_TrayWnd",""); 
		//BOOL bRet=::ShowWindow(hAppBar,SW_SHOW);
		//Visible the control.
		pButton = (CButton *)GetDlgItem(IDC_PLAY);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);
	
		pButton = (CButton *)GetDlgItem(IDC_PAUSE);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_STOP);	
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_FAST);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);
			
		pButton = (CButton *)GetDlgItem(IDC_GOTOEND);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);
	
		pButton = (CButton *)GetDlgItem(IDC_SLOW);	
		pButton->ModifyStyle(0,WS_VISIBLE,0);
	
		pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);	
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_SOUND);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_STEP);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_STEPBACK);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);

		pButton = (CButton *)GetDlgItem(IDC_CAPPIC);		
		pButton->ModifyStyle(0,WS_VISIBLE,0);
		
		m_PlaySlider.ModifyStyle(0,WS_VISIBLE,0);
		m_SoundSlider.ModifyStyle(0,WS_VISIBLE,0);
		m_SliderB.ModifyStyle(0,WS_VISIBLE,0);
		m_SliderC.ModifyStyle(0,WS_VISIBLE,0);
		m_SliderS.ModifyStyle(0,WS_VISIBLE,0);
		m_SliderH.ModifyStyle(0,WS_VISIBLE,0);

		pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);
		pStatic->ModifyStyle(0,WS_VISIBLE,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC2);
		pStatic->ModifyStyle(0,WS_VISIBLE,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC3);
		pStatic->ModifyStyle(0,WS_VISIBLE,0);
		pStatic=(CStatic*)GetDlgItem(IDC_STATIC4);
		pStatic->ModifyStyle(0,WS_VISIBLE,0);


		GetDlgItem(IDC_PLAYSTATETEXT)->ModifyStyle(0,WS_VISIBLE,0);
		
		//make the window can be resize.
		ModifyStyle(0,WS_SIZEBOX,0);
		//change the window pos to pre rect.
		SetWindowPlacement(&m_OldWndpl);

	}
	this->RedrawWindow();
	//2002-6-13 Refresh window.
	Hik_PlayM4_RefreshPlay(PORT);
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	short sCtrl;
	UINT nMenuState;
	sCtrl = GetKeyState(VK_CONTROL);
	if(nChar == VK_F2) 
		OnViewFullscreen();

	if(sCtrl & 0xFF00)
	{
		switch(nChar)
		{
		case VK_C:
			nMenuState = m_pMainMenu->GetMenuState(ID_FILE_CLOSE, MF_BYCOMMAND);
			if(nMenuState != MF_GRAYED)		OnFileClose();
			break;
		case VK_O:
			nMenuState = m_pMainMenu->GetMenuState(ID_FILE_OPEN, MF_BYCOMMAND);
			if(nMenuState != MF_GRAYED)		OnFileOpen();
			break;
		
		case VK_S:
			nMenuState = m_pMainMenu->GetMenuState(IDC_STOP, MF_BYCOMMAND);
			if(nMenuState != MF_GRAYED)		OnFileClose();
			break;
		
		}
	}

	CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
///////////////////////////////////////////////////////////////////////////
//Function: Voluem and progress.
///////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	DWORD nTime;
	int nPlayPos;
	int nBrightness, nContrast, nSaturation, nHue;
	switch(GetWindowLong(pScrollBar->m_hWnd, GWL_ID))
	{
	/////////////////////////////////////////////////////////////////
	//progress slider
	case IDC_PLAY_SLIDER:
		if(m_bStreamType)
			break;
		nPlayPos=m_PlaySlider.GetPos();
		if(abs(nPlayPos-m_nPrePlayPos)<3)
			break;
#ifdef _FILE_POS
		Hik_PlayM4_SetPlayPos(PORT,(float)nPlayPos/(float)m_dwPlaySliderMax);
#else
		nTime=nPlayPos*1000/m_dwPlaySliderMax*m_nMaxFileTime;
		TRACE("Set time ex \n");
		Hik_PlayM4_SetPlayedTimeEx(PORT,nTime);
		TRACE("set time ex ok!\n");
#endif
		DrawStatus();
		break;

	///////////////////////////////////////////////////////////////
	//sound slider;
	case IDC_SOUND_SLIDER:
#ifdef WAVE_ADJ
		Hik_PlayM4_AdjustWaveAudio(PORT, m_SoundSlider.GetPos());
#else
		Hik_PlayM4_SetVolume(PORT,m_SoundSlider.GetPos());
#endif
		break;

	////////////////////////////////////////////////////////////////
	//color slider
	case IDC_SLIDERB:
	case IDC_SLIDERC:
	case IDC_SLIDERS:
	case IDC_SLIDERH:
		nBrightness = m_SliderB.GetPos();
		nContrast = m_SliderC.GetPos();
		nSaturation = m_SliderS.GetPos();
		nHue = m_SliderH.GetPos();
		
		Hik_PlayM4_SetColor(PORT, 0, nBrightness, nContrast, nSaturation, nHue);
		//Hik_PlayM4_GetColor(PORT, 0, &nBrightness, &nContrast, &nSaturation, &nHue);
		//TRACE("Get color(B,C,S,V):%d, %d, %d, %d\n", nBrightness, nContrast, nSaturation, nHue);
		break;
	}

	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if(m_bPlaying)
		OnViewFullscreen();
		
	CDialog::OnLButtonDblClk(nFlags, point);
}
/////////////////////////////////////////////////////////////////////////////
//Function: process the received WM_FILE_END message.
//Para:wParam channel No. lParam reserved;
////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::PlayMessage(WPARAM wParam, LPARAM lParam)
{
	if(m_bFullScreen)
			OnViewFullscreen();
	//remove the same message.
	MSG msgVal;
	while(PeekMessage(&msgVal,m_hWnd,WM_FILE_END,WM_FILE_END,PM_REMOVE))
		;
			
	if(m_bRepeatPlay)
	{
		TRACE("/////////Process message %d\n",lParam);
		if(m_bFileRefCreated)
			Hik_PlayM4_SetCurrentFrameNum(PORT,0);
		else
			Hik_PlayM4_SetPlayPos(PORT,0);
	//	OnStop();
	//	OnPlay();
	}
	if(m_bConvert)
	{  
		OnStop();
		if(outFile!=NULL)
	      closeWriffFiles();
	   //MessageBox("Convertion complete!!",NULL,MB_ICONINFORMATION);	  	  
	}

}
void CPlayerDlg::EncChangeMessage(WPARAM wParam, LPARAM lParam)
{
	MSG msgVal;
	while(PeekMessage(&msgVal,m_hWnd,WM_ENC_CHANGE,WM_ENC_CHANGE,PM_REMOVE))
		;
	SetWindowSize();
	Sleep(1);
}
/////////////////////////////////////////////////////////////////////////////
//Funtion:change Interface 
/////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetStopState()
{
	CButton *pButton;
	pButton = (CButton *)GetDlgItem(IDC_PLAY);		
	pButton->SetIcon(m_hPlayEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_PAUSE);		
	pButton->SetIcon(m_hPauseDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_STOP);		
	pButton->SetIcon(m_hStopDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_FAST);		
	pButton->SetIcon(m_hFastForwardDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_SLOW);		
	pButton->SetIcon(m_hFastBackwardDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_GOTOEND);	
	pButton->SetIcon(m_hGotoEndDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);	
	pButton->SetIcon(m_hGotoStartDisableIcon);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_STEP);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
	pButton->EnableWindow(FALSE);

	pButton = (CButton *)GetDlgItem(IDC_SOUND);
	pButton->EnableWindow(FALSE);

	m_ShowFrame.SetBitmap(m_HikvisionBmp);

	m_pMainMenu->EnableMenuItem(IDC_STOP, TRUE);
	m_pMainMenu->EnableMenuItem(ID_FILE_CLOSE, TRUE);
    m_pMainMenu->EnableMenuItem(ID_FILE_OPEN, FALSE);
	m_pMainMenu->EnableMenuItem(ID_VIEW_FULLSCREEN, TRUE);
	m_pMainMenu->EnableMenuItem(IDC_FAST, TRUE);
	m_PlaySlider.SetPos(0);

	m_bPlaying = FALSE;
	m_bPaused = FALSE;
	m_bFastForwardPlay = FALSE;
	m_strPlayStateText = "Stop";
	UpdateData(FALSE);
	SortControl();
}
//////////////////////////////////////////////////////////////////////////////
//funtion:change interface
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetPlayState()
{
	CButton *pButton;
	pButton = (CButton *)GetDlgItem(IDC_PLAY);
	pButton->SetIcon(m_hPlayDisableIcon);
	pButton->EnableWindow(FALSE);
	
	pButton = (CButton *)GetDlgItem(IDC_PAUSE);
	pButton->SetIcon(m_hPauseEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_STOP);
	pButton->SetIcon(m_hStopEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_FAST);
	pButton->SetIcon(m_hFastForwardEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_SLOW);
	pButton->SetIcon(m_hFastBackwardEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_GOTOEND);
	pButton->SetIcon(m_hGotoEndEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);
	pButton->SetIcon(m_hGotoStartEnableIcon);
	pButton->EnableWindow(TRUE);

	pButton = (CButton *)GetDlgItem(IDC_STEP);
	pButton->EnableWindow(TRUE);

	if(m_bConvert)
        m_bFileRefCreated=FALSE;
	if(m_bFileRefCreated)
	{
		pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
		pButton->EnableWindow(TRUE);
	}

	pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
	pButton->EnableWindow(TRUE);


	pButton = (CButton *)GetDlgItem(IDC_SOUND);
	pButton->EnableWindow(TRUE);

	if(m_bSound)
	{
		pButton = (CButton *)GetDlgItem(IDC_SOUND);
		pButton->SetIcon(m_hSoundStartIcon);
		pButton->EnableWindow(TRUE);
	}

	GetDlgItem(IDC_SOUND_SLIDER)->EnableWindow(TRUE);
	
	if((HBITMAP)m_OverlayBmp!=m_ShowFrame.GetBitmap())
		m_ShowFrame.SetBitmap(m_OverlayBmp);

	m_pMainMenu->EnableMenuItem(IDC_STOP, FALSE);
	//m_pMainMenu->EnableMenuItem(ID_FILE_CLOSE, FALSE);
	m_pMainMenu->EnableMenuItem(ID_VIEW_FULLSCREEN, FALSE);
	m_pMainMenu->EnableMenuItem(IDC_FAST, FALSE);

	m_bFastForwardPlay = FALSE;
	m_PlaySlider.EnableWindow(TRUE);

	SortControl();
	
	UpdateData(FALSE);
	Hik_PlayM4_RefreshPlay(PORT);
}
//////////////////////////////////////////////////////////////////////////////
//Function: chane interface to pause.
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetPauseState(BOOL bPause)
{
	CButton *pButton;
	pButton = (CButton *)GetDlgItem(IDC_PLAY);
	if(bPause)
	{
		pButton->SetIcon(m_hPlayEnableIcon);
		pButton->EnableWindow(TRUE);
	}
	else
	{
		pButton->SetIcon(m_hPlayDisableIcon);
		pButton->EnableWindow(FALSE);
	}

	pButton = (CButton *)GetDlgItem(IDC_PAUSE);		
	if(bPause)
	{
		pButton->SetIcon(m_hPauseDisableIcon);
		pButton->EnableWindow(FALSE);
	}
	else
	{
		pButton->SetIcon(m_hPauseEnableIcon);
		pButton->EnableWindow(TRUE);
	}

	m_bPaused = bPause;
	UpdateData(FALSE);
}
//////////////////////////////////////////////////////////////////////////////
//Function:change interface to fast;
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetFastForwardState()
{
	CButton *pButton;
	pButton = (CButton *)GetDlgItem(IDC_PLAY);
	pButton->SetIcon(m_hPlayEnableIcon);
	pButton->EnableWindow(TRUE);
	

⌨️ 快捷键说明

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