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

📄 caddfiledlg.cpp

📁 最近在学习directshow, Directshow实务精选的源代码
💻 CPP
字号:
// CAddFileDlg.cpp : implementation file
//

#include "stdafx.h"
#include "vodserver.h"
#include "CAddFileDlg.h"

#include "CMediaInfo.h"
#include "defines.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAddFileDlg dialog


CAddFileDlg::CAddFileDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAddFileDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddFileDlg)
	mSourceFile = _T("");
	mPID = 0;
	mFileSize = 0;
	mFileType = _T("");
	//}}AFX_DATA_INIT
	mMedia  = NULL;
	mIsEdit = FALSE;
}


void CAddFileDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddFileDlg)
	DDX_Text(pDX, IDC_EDIT_SOURCE_FILE, mSourceFile);
	DDX_Text(pDX, IDC_EDIT_PID, mPID);
	DDX_Text(pDX, IDC_EDIT_FILESIZE, mFileSize);
	DDX_Text(pDX, IDC_EDIT_FILETYPE, mFileType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddFileDlg, CDialog)
	//{{AFX_MSG_MAP(CAddFileDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddFileDlg message handlers
void CAddFileDlg::SetMediaInfo(CMediaInfo * inMedia)
{
	mMedia = inMedia;
}

void CAddFileDlg::SetEditMode(BOOL inIsEdit)
{
	mIsEdit = inIsEdit;
}

BOOL CAddFileDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	ASSERT(mMedia);

	if (!mIsEdit)  // Non-edit mode
	{
		BOOL	isSourceOK = FALSE;
		CString strFilter  = "MPEG Files (*.mpg;*.mpeg)|*.mpg;*.mpeg|";
		strFilter += "AVI Files (*.avi)|*.avi|";
		strFilter += "MP3 Files (*.mp3)|*.mp3|";
		strFilter += "All Files (*.*)|*.*|";
		CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, strFilter, NULL);
		if (IDOK == dlg.DoModal()) 
		{
			isSourceOK = mMedia->SetFilePath(dlg.GetPathName());
		}
		if (!isSourceOK)
		{
			GetDlgItem(IDOK)->EnableWindow(FALSE);
		}
	}

	// Update UI controls
	mSourceFile = mMedia->mFilePath;
	mFileSize   = mMedia->mFileSize;
	mPID        = mMedia->mProgramId;
	// Determine file type
	switch (mMedia->mFileType)
	{
	case FT_MPEG1:
		mFileType = "MPEG1";
		break;
	case FT_MPEG2:
		mFileType = "MPEG2";
		break;
	case FT_AVI:
		mFileType = "AVI";
		break;
	case FT_MP3:
		mFileType = "MP3";
		break;
	default:
		mFileType = "Unknown";
		break;
	}

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

void CAddFileDlg::OnOK() 
{
	if (mMedia)
	{
		UpdateData(TRUE);
		mMedia->mProgramId = mPID;
	}
	
	CDialog::OnOK();
}

⌨️ 快捷键说明

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