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

📄 videodlg.cpp

📁 视频播放控制器程序
💻 CPP
字号:
// VideoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "LiveController.h"
#include "VideoDlg.h"
#include "AddVideoDlg.h"
#include "ListItem.h"
#include "Schedule.h"
#include "ViewVideoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CVideoDlg dialog


CVideoDlg::CVideoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CVideoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CVideoDlg)
	m_VideoFileName = _T("");
	//}}AFX_DATA_INIT
}


void CVideoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVideoDlg)
	DDX_Control(pDX, IDC_LIST_Video, m_ctrVideoList);
	DDX_Text(pDX, IDC_Video_Show, m_VideoFileName);
	//}}AFX_DATA_MAP
}

void CVideoDlg::RefreshVidList()
{
	VideoListItem *m_pShowVid= new VideoListItem();
	m_pShowVid = m_pDBinterface->GetVideoList();
	int nIndex=m_ctrVideoList.GetItemCount();
	while (m_pShowVid)
	{
		LVITEM tempLvi;
		tempLvi.mask = LVIF_IMAGE | LVIF_TEXT;
		tempLvi.stateMask = -1;
	//////////// Video ID  //////////////////////////////////////////////////////
		tempLvi.iItem = nIndex;
		tempLvi.iSubItem = 0;
		char idtemp[20];
		_itoa(m_pShowVid->VideoID,idtemp,10);
		tempLvi.pszText = (char *)idtemp;
		m_ctrVideoList.InsertItem(&tempLvi);
		m_ctrVideoList.SetItem(&tempLvi);
	/////////// Video type //////////////////////////////////////////////////////
		char typetemp[20];
		_itoa(m_pShowVid->VideoType,typetemp,10);
		tempLvi.iSubItem = 1;
		tempLvi.pszText = (char *)typetemp;
		m_ctrVideoList.SetItem( &tempLvi );
	//////////  Video name //////////////////////////////////////////////////////
		tempLvi.iSubItem = 2;
		tempLvi.pszText = (char *)(LPCTSTR)(m_pShowVid->VideoName);
		m_ctrVideoList.SetItem( &tempLvi );
	//////////  Vieo path  //////////////////////////////////////////////////////
		tempLvi.iSubItem = 3;
		tempLvi.pszText = (char *)(LPCTSTR)(m_pShowVid->VideoPath);
		m_ctrVideoList.SetItem( &tempLvi );
	/////////	Video FormatFile    /////////////////////////////////////////////
		tempLvi.iSubItem = 4;
		tempLvi.pszText = (char *)(LPCTSTR)(m_pShowVid->VideoFormatFlie);
		m_ctrVideoList.SetItem( &tempLvi );
		m_pShowVid = m_pShowVid->pNext;
		nIndex++;
	}
	delete m_pShowVid;

}


BEGIN_MESSAGE_MAP(CVideoDlg, CDialog)
	//{{AFX_MSG_MAP(CVideoDlg)
	ON_BN_CLICKED(IDC_BN_Video_SELECT, OnBNVideoSELECT)
	ON_BN_CLICKED(IDC_BN_Video_ADD, OnBNVideoADD)
	ON_NOTIFY(NM_CLICK, IDC_LIST_Video, OnClickLISTVideo)
	ON_BN_CLICKED(IDC_BN_Video_DEL, OnBNVideoDEL)
	ON_BN_CLICKED(IDC_BN_Video_VIEW, OnBNVideoVIEW)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_Video, OnDblclkLISTVideo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVideoDlg message handlers

BOOL CVideoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LVCOLUMN	lvcol;
	lvcol.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT;
	lvcol.fmt = LVCFMT_LEFT;
	lvcol.pszText = _T( "视频源ID" );
	lvcol.iSubItem = 1;
	m_ctrVideoList.InsertColumn( 0, &lvcol );
	m_ctrVideoList.SetColumnWidth( 0, 80 );
	lvcol.pszText = _T( "类型" );
	m_ctrVideoList.InsertColumn( 1, &lvcol );
	m_ctrVideoList.SetColumnWidth( 1, 130 );
	lvcol.pszText = _T( "名称" );
	m_ctrVideoList.InsertColumn( 2, &lvcol );
	m_ctrVideoList.SetColumnWidth( 2, 80 );
	lvcol.pszText = _T( "路径" );
	m_ctrVideoList.InsertColumn( 3, &lvcol );
	m_ctrVideoList.SetColumnWidth( 3, 150 );
	lvcol.pszText = _T( "配置文件" );
	m_ctrVideoList.InsertColumn( 4, &lvcol );
	m_ctrVideoList.SetColumnWidth( 4, 80 );
/////网格状表格////
	DWORD dwStyle = m_ctrVideoList.GetExtendedStyle();
	dwStyle |= LVS_EX_FULLROWSELECT;
	dwStyle |= LVS_EX_GRIDLINES;
    m_ctrVideoList.SetExtendedStyle(dwStyle);	

	
//////////////获取列表内容//////////////////////////////////
	RefreshVidList();
///////////////////////////////////////////////////////////////

	GetDlgItem(IDC_BN_Video_DEL)->EnableWindow(FALSE);
	GetDlgItem(IDC_BN_Video_VIEW)->EnableWindow(FALSE);
	GetDlgItem(IDC_BN_Video_ADD)->EnableWindow(TRUE);
	

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CVideoDlg::OnBNVideoSELECT() 
{
	// TODO: Add your control notification handler code here
	static char BASED_CODE szFilter[] = "(*.*)|*.*||"; 
	CFileDialog filedlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
	if(IDOK==filedlg.DoModal())
	{
	  m_VideoFileName=filedlg.GetPathName();//得到文件名及路径
	}
	UpdateData(false);
	GetDlgItem(IDC_BN_Video_ADD)->EnableWindow(TRUE);
}

void CVideoDlg::OnBNVideoADD() 
{
	// TODO: Add your control notification handler code here
	CAddVideoDlg dlg;
	if ( dlg.DoModal() != IDOK ) {
		return;
	}


	VideoListItem *m_pNewAddedVideoItem;
	
	m_pNewAddedVideoItem = new VideoListItem;
	UpdateData();
	int nIndex = m_ctrVideoList.GetItemCount();

    

	m_pNewAddedVideoItem->VideoID = nIndex;
	m_pNewAddedVideoItem->VideoName = dlg.m_VideoName;
	m_pNewAddedVideoItem->VideoType = dlg.gettype;
	m_pNewAddedVideoItem->VideoPath = m_VideoFileName;
	m_pNewAddedVideoItem->VideoFormatFlie = dlg.m_VideoFormatFile;
	

	m_pDBinterface->AddVidsrc(m_pNewAddedVideoItem);     //添加项目	
	m_ctrVideoList.DeleteAllItems();             //删除所有项目
	RefreshVidList();        
	

}

void CVideoDlg::OnClickLISTVideo(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	LPNMITEMACTIVATE pNmitem = (LPNMITEMACTIVATE)pNMHDR;
	UINT uFlags;
	m_nSelectVideoItem = m_ctrVideoList.HitTest( CPoint(pNmitem->ptAction), &uFlags );
	if ( m_nSelectVideoItem < 0 )
	{
		GetDlgItem(IDC_BN_Video_DEL)->EnableWindow(FALSE);
		GetDlgItem(IDC_BN_Video_VIEW)->EnableWindow(FALSE);
		*pResult = 0;
		return;
	}
	
	GetDlgItem(IDC_BN_Video_DEL)->EnableWindow(TRUE);
	GetDlgItem(IDC_BN_Video_VIEW)->EnableWindow(TRUE);
	*pResult = 0;
}

void CVideoDlg::OnBNVideoDEL() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_ctrVideoList.GetFirstSelectedItemPosition();
	int temp;
	CString ttemp;
	if (pos)
	{
		int index = m_ctrVideoList.GetNextSelectedItem(pos);
		ttemp = m_ctrVideoList.GetItemText(index,0);
		temp = atoi((char *)(LPCTSTR)ttemp);
		m_pDBinterface->RemoveVidsrc(temp);
		m_ctrVideoList.DeleteAllItems();
		RefreshVidList();
	}
	
}

void CVideoDlg::OnBNVideoVIEW() 
{
	// TODO: Add your control notification handler code here
	 
	CViewVideoDlg dlg;
	POSITION pos = m_ctrVideoList.GetFirstSelectedItemPosition();
	if (pos)
	{
		int nIndex = m_ctrVideoList.GetNextSelectedItem( pos );
	
		dlg.m_IDshow = m_ctrVideoList.GetItemText(nIndex,0);
		if (m_ctrVideoList.GetItemText(nIndex,1)=="1")
		{
			dlg.m_TYPEshow = SCHE_TYPE_STREAM_WITH_MSG_STR;
		}
		else
		{
			dlg.m_TYPEshow = SCHE_TYPE_STREAM_ONLY_STR;
		}
		dlg.m_NAMEshow = m_ctrVideoList.GetItemText(nIndex,2);
		dlg.m_PATHshow = m_ctrVideoList.GetItemText(nIndex,3);
		dlg.m_FORMATshow = m_ctrVideoList.GetItemText(nIndex,4);
		dlg.DoModal();
	}
	
}

void CVideoDlg::OnDblclkLISTVideo(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	OnBNVideoVIEW();
	*pResult = 0;
}

⌨️ 快捷键说明

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