📄 choosevideocompressordlg.cpp
字号:
// ChooseVideoCompressorDlg.cpp : implementation file
//
#include "stdafx.h"
#include "multicard.h"
#include "ChooseVideoCompressorDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChooseVideoCompressorDlg dialog
CChooseVideoCompressorDlg::CChooseVideoCompressorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChooseVideoCompressorDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CChooseVideoCompressorDlg)
m_iQuality = 0;
//}}AFX_DATA_INIT
m_szCompName[0] = '\0';
}
void CChooseVideoCompressorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChooseVideoCompressorDlg)
DDX_Control(pDX, IDC_SLIDER_QUALITY, m_quality);
DDX_Control(pDX, IDC_LIST_COMPRESSOR, m_list);
DDX_Slider(pDX, IDC_SLIDER_QUALITY, m_iQuality);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChooseVideoCompressorDlg, CDialog)
//{{AFX_MSG_MAP(CChooseVideoCompressorDlg)
ON_WM_HSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChooseVideoCompressorDlg message handlers
BOOL CChooseVideoCompressorDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_list.ResetContent();
VideoCompressorInfo * pInfo;
int num;
HRESULT hr = DSStream_EnumVideoCompressor(NULL, &num);
if(SUCCEEDED(hr) && num>0)
{
pInfo = new VideoCompressorInfo[num];
if(pInfo)
{
hr = DSStream_EnumVideoCompressor(pInfo, &num);
if(SUCCEEDED(hr))
{
for(int i=num-1; i>=0; i--)
{
m_list.InsertString(0, pInfo[i].szName);
}
}
delete [] pInfo;
}
}
m_list.InsertString(0, "<<不使用任何视频压缩算法>>");
//查看当前使用的是何种视频压缩算法
char szCompName[80];
char szList[80];
hr = DSStream_GetCurrentVideoCompressor(szCompName);
if(SUCCEEDED(hr) && strlen(szCompName))
{
num = m_list.GetCount();
for(int i=0; i<num; i++)
{
szList[0] = '\0';
m_list.GetText(i, szList);
if(strcmp(szCompName, szList)==0)
{
m_list.SetCurSel(i);
break;
}
}
}
//压缩质量
m_quality.SetRange(0, 100);
int iQuality;
hr = DSStream_GetVideoCompressorQuality(&iQuality);
if(SUCCEEDED(hr))
{
m_quality.SetPos(iQuality);
SetDlgItemInt(IDC_STATIC_QUALITY, iQuality);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CChooseVideoCompressorDlg::OnOK()
{
// TODO: Add extra validation here
int pos = m_list.GetCurSel();
if(pos >= 0)
m_list.GetText(pos, m_szCompName);
CDialog::OnOK();
}
void CChooseVideoCompressorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
if(pScrollBar->m_hWnd == m_quality.m_hWnd)
{
SetDlgItemInt(IDC_STATIC_QUALITY, m_quality.GetPos());
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -