📄 capturevideodlg.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 + -