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

📄 capturevideodlg.cpp

📁 我近期从事视频开发所以将我参考的资料上传给大家看看。
💻 CPP
字号:
#include "stdafx.h"
#include "vidcap.h"
#include <vfw.h>
#include "CaptureVideoDlg.h"

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

CCaptureVideoDlg::CCaptureVideoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCaptureVideoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCaptureVideoDlg)
	m_bAudio = FALSE;
	m_bEnableLimit = FALSE;
	m_nSeconds = 30;
	m_nFPS = 0;
	//}}AFX_DATA_INIT
}

void CCaptureVideoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCaptureVideoDlg)
	DDX_Control(pDX, IDC_SPIN_SECONDS, m_ctrlSpinSeconds);
	DDX_Control(pDX, IDC_SPIN_FPS, m_ctrlSpinFPS);
	DDX_Check(pDX, IDC_AUDIO, m_bAudio);
	DDX_Check(pDX, IDC_ENABLE_LIMIT, m_bEnableLimit);
	DDX_Text(pDX, IDC_SECONDS, m_nSeconds);
	DDX_Text(pDX, IDC_FPS, m_nFPS);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCaptureVideoDlg, CDialog)
	//{{AFX_MSG_MAP(CCaptureVideoDlg)
	ON_BN_CLICKED(IDC_CONFIGURE_AUDIO, OnConfigureAudio)
	ON_BN_CLICKED(IDC_CONFIGURE_COMPRESS, OnConfigureCompress)
	ON_BN_CLICKED(IDC_CONFIGURE_VIDEO, OnConfigureVideo)
	ON_BN_CLICKED(IDC_ENABLE_LIMIT, OnEnableLimit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CCaptureVideoDlg::OnConfigureAudio() 
{
  AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_OPTIONS_AUDIOFORMAT); 	
}

void CCaptureVideoDlg::OnConfigureCompress() 
{
  AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_OPTIONS_COMPRESSION); 		
}

void CCaptureVideoDlg::OnConfigureVideo() 
{
  AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_OPTIONS_VIDEOFORMAT);
}

BOOL CCaptureVideoDlg::OnInitDialog() 
{ 
  //Transfer the cap parms into the member variables
	m_nFPS = static_cast<int>((1000000.0 / m_CapParms.dwRequestMicroSecPerFrame) + 0.5);
  m_bEnableLimit = m_CapParms.fLimitEnabled;
  if (m_bEnableLimit)
    m_nSeconds = m_CapParms.wTimeLimit;
  m_bAudio = m_CapParms.fCaptureAudio;

  //Let the parent class do its thing
	CDialog::OnInitDialog();

  //Set the spin control range
	m_ctrlSpinSeconds.SetRange(1, 10000);
	m_ctrlSpinFPS.SetRange(1, 100);

  //Enable / disable the limit option
  OnEnableLimit();
	
	return TRUE;
}

void CCaptureVideoDlg::OnOK() 
{
  //Let the parent class do its thing
	CDialog::OnOK();

  //Transfer back into the CAPTUREPARMS struct
  m_CapParms.dwRequestMicroSecPerFrame = 1000000 / m_nFPS;
  m_CapParms.fLimitEnabled = m_bEnableLimit;
  if (m_bEnableLimit)
    m_CapParms.wTimeLimit = m_nSeconds;
  m_CapParms.fCaptureAudio = m_bAudio;
}

void CCaptureVideoDlg::OnEnableLimit() 
{
  CDataExchange DX(this, TRUE);
  DDX_Check(&DX, IDC_ENABLE_LIMIT, m_bEnableLimit);
  GetDlgItem(IDC_PROMPT_SECONDS)->EnableWindow(m_bEnableLimit);
  GetDlgItem(IDC_SECONDS)->EnableWindow(m_bEnableLimit);
  GetDlgItem(IDC_SPIN_SECONDS)->EnableWindow(m_bEnableLimit);
}

⌨️ 快捷键说明

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