📄 videomanage_dlg.cpp
字号:
/*
///////////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2006-2008 Beijing, pengzhen (pengzhenxp@yahoo.com.cn) //
// //
///////////////////////////////////////////////////////////////////////////////
*/
// videomanage_dlg.cpp : implementation file
//
#include "stdafx.h"
#include "H265V.h"
#include "videomanage_dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "videomanage_dlg1.cpp"
/////////////////////////////////////////////////////////////////////////////
// CVideoManage_Dlg property page
IMPLEMENT_DYNCREATE(CVideoManage_Dlg, CPropertyPage)
CVideoManage_Dlg::CVideoManage_Dlg( UINT nIDCaption ) : CPropertyPage(CVideoManage_Dlg::IDD,nIDCaption)
{
//{{AFX_DATA_INIT(CVideoManage_Dlg)
//}}AFX_DATA_INIT
m_iItem = 0 ;
m_iSubItem = size_video_sub_id ;
m_iItemStep = 1 ;
m_pCurItemText = TEXT("") ;
LoadItemValue( TRUE ) ;
}
CVideoManage_Dlg::~CVideoManage_Dlg()
{
}
void CVideoManage_Dlg::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVideoManage_Dlg)
DDX_Control(pDX, IDC_STATIC_NAME, m_pNameCtrl);
DDX_Control(pDX, IDC_STATIC_ITEM, m_pItemCtrl);
DDX_Control(pDX, IDC_EDIT_ITEM, m_pEditItem);
DDX_Control(pDX, IDC_SLIDER_ITEM, m_pSliderItem);
DDX_Control(pDX, IDC_BUTTON_DEFAULT, m_pButtonDefault);
DDX_Control(pDX, IDC_BUTTON_ALL, m_pButtonAll);
DDX_Control(pDX, IDC_LIST_MANAGE_VIDEO, m_pListCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVideoManage_Dlg, CPropertyPage)
//{{AFX_MSG_MAP(CVideoManage_Dlg)
ON_NOTIFY(NM_CLICK, IDC_LIST_MANAGE_VIDEO, OnClickListManageVideo)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_BUTTON_DEFAULT, OnButtonDefault)
ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVideoManage_Dlg message handlers
BOOL CVideoManage_Dlg::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_pListCtrl.ListSetInfo( m_pColumnTitle , sizeof(m_pColumnTitle)/sizeof(CString) );
m_pListCtrl.SetColumnWidth(name_video_sub_id , 70 );
//m_pButtonDefault.SetWindowText( TEXT("Default") );
//m_pButtonAll.SetWindowText( TEXT("All") );
LoadItemValue( FALSE ) ;
SetItemControlContext() ;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CVideoManage_Dlg::OnSetActive()
{
LoadItemValue( FALSE ) ;
AddStringList( &m_pListCtrl );
//m_iItem = 0 ;
//m_iSubItem = size_video_sub_id ;
SetItemControlContext() ;
return CPropertyPage::OnSetActive();
}
void CVideoManage_Dlg::ListInsertString(CManageListCtrl *lpList, int nItem )
{
lpList->DeleteItem( nItem );
lpList->InsertItem(nItem, TEXT(""), 0);
CString lpStr;
lpList ->ListAddString( m_pVideoDeviceName[nItem] , nItem, name_video_sub_id );
int iSubItem = name_video_sub_id+1 ;
int iSubItemCount = (nItem == VideoManage_FileItem) ?
VideoManage_FileSubItems : VideoManage_SubItems ; /* File*/
for( ; iSubItem < iSubItemCount; iSubItem++)
{
lpStr = GetCurSubItemText( iSubItem , m_iItemValue [nItem][iSubItem ] ) ;
lpList ->ListAddString( lpStr , nItem, iSubItem );
}
lpList->SetCheck( nItem , nItem==m_iItem ); //check
}
void CVideoManage_Dlg::AddStringList(CManageListCtrl *lpList )
{
int nItem;
lpList->DeleteAllItems( );
for( nItem=0 ; nItem < VideoManage_Items ; nItem++)
{
ListInsertString(lpList, nItem );
}
}
void CVideoManage_Dlg::OnClickListManageVideo(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMList = (NM_LISTVIEW*)pNMHDR; *pResult = 0;
if( ( pNMList->iItem < 0 ) | ( pNMList->iItem >= m_pListCtrl.GetItemCount() ) ) return ;
//if( ( pNMList->iItem < 0 ) | ( pNMList->iItem >= VideoManage_Items ) ) return ;
if( m_iItem != pNMList->iItem ) return ; /* only one device */
m_iItem = pNMList->iItem ; m_iSubItem = pNMList->iSubItem;
if( (m_iItem == VideoManage_FileItem) &&
m_iSubItem >=VideoManage_FileSubItems) m_iSubItem = size_video_sub_id ; /*File*/
SetItemControlContext() ;
for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
{
m_pListCtrl.SetCheck( nItem , nItem==m_iItem ); //check
}
}
void CVideoManage_Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
if( m_iSubItem != name_video_sub_id )
{
//if( pScrollBar->GetDlgCtrlID() == IDC_SLIDER_ITEM )
int iValue = m_pSliderItem.GetPos() * m_iItemStep ;
if( m_iItemValue[ m_iItem ][ m_iSubItem ] != iValue )
{
m_pCurItemText = GetCurSubItemText( m_iSubItem , iValue ) ;
m_pEditItem.SetWindowText( m_pCurItemText );
LoadSubItemValue( m_iItem, m_iSubItem, m_pCurItemText, iValue );
SetItemControlContext( m_iItem, m_iSubItem, iValue ) ;
SetVideoRegItemValue() ;
}
}
CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CVideoManage_Dlg::OnButtonDefault()
{
if( m_iSubItem != name_video_sub_id )
{
int iValue = m_iItemValue[VideoManage_Items][m_iSubItem] ;
m_pCurItemText = GetCurSubItemText( m_iSubItem , iValue ) ;
m_pEditItem.SetWindowText( m_pCurItemText );
int nItem = m_iItem ;
//for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
{
LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );
SetItemControlContext( nItem, m_iSubItem, iValue ) ;
}
m_pSliderItem.SetPos( iValue / m_iItemStep );
SetVideoRegItemValue() ;
}
}
void CVideoManage_Dlg::OnButtonAll()
{
if( m_iSubItem != name_video_sub_id )
{
int iValue = m_iItemValue[m_iItem][m_iSubItem] ;
m_pEditItem.SetWindowText( m_pCurItemText );
for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
{
LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );
SetItemControlContext( nItem, m_iSubItem, iValue ) ;
}
SetVideoRegItemValue() ;
}
}
CString CVideoManage_Dlg::GetCurSubItemText( int nSubItem , int iValue )
{
CString lpStr;
switch( nSubItem )
{
case size_video_sub_id :
m_pVideoSizeNew = m_pVideoSize[iValue] ;
lpStr.Format( TEXT("%d*%d") , m_pVideoSizeNew.cx, m_pVideoSizeNew.cy) ;
break ;
case standard_video_sub_id :
lpStr = m_pStandardText[iValue] ;
break ;
default :
lpStr.Format( TEXT("%d"), iValue );
break ;
}
return lpStr ;
}
void CVideoManage_Dlg::SetItemControlContext()
{
if( m_iSubItem == name_video_sub_id )
{
m_pNameCtrl.SetWindowText( m_pVideoDeviceName[m_iItem] );
}
else
{
TCHAR lpCurItemText1[100+1] ;
m_pCurItemText = TEXT("") ;
if( m_pListCtrl.GetItemText( m_iItem, m_iSubItem ,
lpCurItemText1 , 100) != CB_ERR ) m_pCurItemText = lpCurItemText1 ;
m_pNameCtrl.SetWindowText( m_pVideoDeviceName[m_iItem] );
m_pItemCtrl.SetWindowText( m_pColumnTitle[m_iSubItem] );
m_pEditItem.SetWindowText( m_pCurItemText );
m_iItemStep = 1;
switch( m_iSubItem )
{
case size_video_sub_id :
m_pSliderItem.SetRange( 0, 3, TRUE );
/*
#ifdef TM1300_APP
m_pSliderItem.SetRange( 0, 1, TRUE );
#endif //TM1300_APP
*/
break ;
case standard_video_sub_id :
m_pSliderItem.SetRange( 0, 4, TRUE ); break ;
case source_video_sub_id :
m_pSliderItem.SetRange( 0, 3, TRUE ); break ;
default :
m_pSliderItem.SetRange( 0, 255, TRUE ); break ;
}
m_pSliderItem.SetPos( m_iItemValue[m_iItem][ m_iSubItem ] / m_iItemStep );
}
}
void CVideoManage_Dlg::SetItemControlContext( int nItem, int nSubItem, int iValue )
{
WPARAM wParam0 = 0 ;
switch( nSubItem )
{
case size_video_sub_id :
m_pVideoSizeNew = m_pVideoSize[iValue] ;
wParam0 = WM_USER_VIDEO_SIZE ;
break ;
case standard_video_sub_id :
wParam0 = WM_USER_VIDEO_STANDARD ;
break ;
case source_video_sub_id :
wParam0 = WM_USER_VIDEO_PORT ;
break ;
case luma_video_sub_id :
wParam0 = WM_USER_VIDEO_LUMA ;
break ;
case chroma_video_sub_id :
wParam0 = WM_USER_VIDEO_CHROMA ;
break ;
case hue_video_sub_id :
wParam0 = WM_USER_VIDEO_HUE ;
break ;
case saturation_video_sub_id :
wParam0 = WM_USER_VIDEO_SATURATION ;
break ;
case contrast_video_sub_id :
wParam0 = WM_USER_VIDEO_CONTRAST ;
break ;
}
if( wParam0 == WM_USER_VIDEO_SIZE )
m_pApp->SendUserMessage( wParam0 , (LPARAM)&m_pVideoSizeNew ) ;
else if( wParam0 != 0 )
m_pApp->SendUserMessage( wParam0 , iValue ) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -