newclientdlg.cpp
来自「SDK DVR/DVS HIKVISION」· C++ 代码 · 共 2,307 行 · 第 1/5 页
CPP
2,307 行
void CNewclientDlg::ArrayWindow(WORD iPos, WORD iNumber)
{
int i = 0;
CRect crect;
GetClientRect(&crect);
WORD iWidth,iHeight;
NET_DVR_DISPLAY_PARA displaypara;
for (i = 0;i < MAXVIEWNUM;i++)
{
myoutput[i].ShowWindow(SW_HIDE);
}
switch(iNumber)
{
case 4:
if(ClientParam.m_bMultiScreen)
{
iWidth = 510;
iHeight = 383;
MYVIEW_LEFT = 0;
MYVIEW_TOP = 0;
}
else
{
MYVIEW_LEFT = 20;
MYVIEW_TOP = 20;
iWidth = 354;
iHeight = 290;
}
bLargeWnd = FALSE;
for(i = 0; i < 2; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3,MYVIEW_TOP,iWidth,iHeight,true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for(i = 2; i < 4; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-2)*iWidth+(i-2)*3,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-2)*iWidth+(i-2)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
break;
case 9:
if(ClientParam.m_bMultiScreen)
{
iWidth = 339;
iHeight = 254;
MYVIEW_LEFT = 0;
MYVIEW_TOP = 0;
}
else
{
iWidth = 234;
iHeight = 192;
MYVIEW_LEFT = 20;
MYVIEW_TOP = 20;
}
bLargeWnd = FALSE;
for (i=0;i<3;i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3,MYVIEW_TOP,iWidth,iHeight,true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for (i=3;i<6;i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-3)*iWidth+(i-3)*3,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-3)*iWidth+(i-3)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for (i=6;i<9;i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-6)*iWidth+(i-6)*3,MYVIEW_TOP+2*iHeight+4,iWidth,iHeight,true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-6)*iWidth+(i-6)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
break;
case 16:
if(ClientParam.m_bMultiScreen)
{
iWidth = 254;
iHeight = 190;
MYVIEW_LEFT = 0;
MYVIEW_TOP = 0;
}
else
{
MYVIEW_LEFT = 20;
MYVIEW_TOP = 20;
iWidth = 178;//176;
iHeight = 146;//144;
}
bLargeWnd = FALSE;
for(i = 0; i < 4; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3, MYVIEW_TOP, iWidth, iHeight, true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for(i = 4; i < 8; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-4)*iWidth+(i-4)*3, MYVIEW_TOP+iHeight+2, iWidth, iHeight, true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-4)*iWidth+(i-4)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for(i = 8; i < 12; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-8)*iWidth+(i-8)*3, MYVIEW_TOP+iHeight*2+4, iWidth, iHeight, true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-8)*iWidth+(i-8)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
for(i = 12; i < 16; i++)
{
myoutput[i].MoveWindow(MYVIEW_LEFT+(i-12)*iWidth+(i-12)*3, MYVIEW_TOP+iHeight*3+6, iWidth, iHeight, true);
myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-12)*iWidth+(i-12)*3/*-2*/;
myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*3;
myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
myoutput[i].m_display_para.nHeight = iHeight;
myoutput[i].ShowWindow(SW_SHOW);
}
break;
case 1:
if(ClientParam.m_bMultiScreen)
{
iWidth = 1024;
iHeight = 768;
MYVIEW_LEFT = 0;
MYVIEW_TOP = 0;
}
else
{
MYVIEW_LEFT = 20;
MYVIEW_TOP = 20;
iWidth = 706;
iHeight = 578;
}
myoutput[iPos].MoveWindow(MYVIEW_LEFT,MYVIEW_TOP,iWidth,iHeight,true);
myoutput[iPos].m_display_para.nLeft = MYVIEW_LEFT;
myoutput[iPos].m_display_para.nTop = MYVIEW_TOP;
myoutput[iPos].m_display_para.nWidth = iWidth;
myoutput[iPos].m_display_para.nHeight = iHeight;
myoutput[iPos].ShowWindow(SW_SHOW);
break;
default:
break;
}
if(ClientParam.m_bUseCard)
{
TRACE("Use Decode Card");
TRACE("iNumber = %d", iNumber);
NET_DVR_ClearSurface_Card();
for(i = 0; i < MAXVIEWNUM; i++)
{
displaypara.bToScreen = 0;
displaypara.bToVideoOut = 1;
displaypara.nLeft = myoutput[i].m_display_para.nLeft;
displaypara.nTop = myoutput[i].m_display_para.nTop;
displaypara.nWidth = myoutput[i].m_display_para.nWidth;
displaypara.nHeight = myoutput[i].m_display_para.nHeight;
NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
}
if(iNumber == 1)
{//Enlarge
displaypara.bToScreen = 1;
displaypara.bToVideoOut = 1;
displaypara.nLeft = myoutput[iPos].m_display_para.nLeft;
displaypara.nTop = myoutput[iPos].m_display_para.nTop;
displaypara.nWidth = myoutput[iPos].m_display_para.nWidth;
displaypara.nHeight = myoutput[iPos].m_display_para.nHeight;
NET_DVR_ResetPara_Card(myoutput[iPos].m_iPlayhandle,&displaypara);
}
else
{//Shrink
for(i = 0; i < iNumber; i++)
{
displaypara.bToScreen = 1;
displaypara.bToVideoOut = 1;
displaypara.nLeft = myoutput[i].m_display_para.nLeft;
displaypara.nTop = myoutput[i].m_display_para.nTop;
displaypara.nWidth = myoutput[i].m_display_para.nWidth;
displaypara.nHeight = myoutput[i].m_display_para.nHeight;
NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
}
}
}
}
void CNewclientDlg::MoveCurWin(int iWindowNum,int iCurWinPos)
{
CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
int rectWidth = 0;
int rectHeight = 0;
int rectTop = 0;
int rectLeft = 0;
switch(iWindowNum)
{
case 1:
rectWidth = 706;
rectHeight = 578;
rectTop = MYVIEW_TOP;
rectLeft = MYVIEW_LEFT;
break;
case 4:
rectWidth = 354;
rectHeight = 290;
switch(iCurWinPos)
{
case 0:
case 1:
rectTop = MYVIEW_TOP;
rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3;
break;
case 2:
case 3:
rectTop = MYVIEW_TOP+rectHeight+2;
rectLeft = MYVIEW_LEFT+(iCurWinPos-2)*rectWidth+(iCurWinPos-2)*3;
break;
default:
break;
}
break;
case 9:
rectWidth = 234;
rectHeight = 192;
switch(iCurWinPos)
{
case 0:
case 1:
case 2:
rectTop = MYVIEW_TOP;
rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3;
break;
case 3:
case 4:
case 5:
rectTop = MYVIEW_TOP+rectHeight + 2;
rectLeft = MYVIEW_LEFT+(iCurWinPos-3)*rectWidth+(iCurWinPos-3)*3;
break;
case 6:
case 7:
case 8:
rectTop = MYVIEW_TOP+2*rectHeight+4;
rectLeft = MYVIEW_LEFT+(iCurWinPos-6)*rectWidth+(iCurWinPos-6)*3;
break;
default:
break;
}
break;
case 16:
rectWidth = 178;
rectHeight = 146;
switch(iCurWinPos)
{
case 0:
case 1:
case 2:
case 3:
rectTop = MYVIEW_TOP;
rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3;
break;
case 4:
case 5:
case 6:
case 7:
rectTop = MYVIEW_TOP+rectHeight+2;
rectLeft = MYVIEW_LEFT+(iCurWinPos-4)*rectWidth+(iCurWinPos-4)*3;
break;
case 8:
case 9:
case 10:
case 11:
rectTop = MYVIEW_TOP+2*rectHeight+4;
rectLeft = MYVIEW_LEFT+(iCurWinPos-8)*rectWidth+(iCurWinPos-8)*3;
break;
case 12:
case 13:
case 14:
case 15:
rectTop = MYVIEW_TOP+3*rectHeight+6;
rectLeft = MYVIEW_LEFT+(iCurWinPos-12)*rectWidth+(iCurWinPos-12)*3;
break;
default:
break;
}
break;
default:
break;
}
mycurwin.m_black.ShowWindow(SW_HIDE);
mycurwin.MoveWindow(rectLeft-1,rectTop-1,rectWidth+2,rectHeight+2);
mycurwin.m_black.ShowWindow(SW_SHOW);
mycurwin.EnableWindow(FALSE);
}
void CNewclientDlg::InitLed()
{
int i;
m_pCapLed[0] = &m_CapLed1;
m_pCapLed[1] = &m_CapLed2;
m_pCapLed[2] = &m_CapLed3;
m_pCapLed[3] = &m_CapLed4;
m_pCapLed[4] = &m_CapLed5;
m_pCapLed[5] = &m_CapLed6;
m_pCapLed[6] = &m_CapLed7;
m_pCapLed[7] = &m_CapLed8;
m_pCapLed[8] = &m_CapLed9;
m_pCapLed[9] = &m_CapLed10;
m_pCapLed[10] = &m_CapLed11;
m_pCapLed[11] = &m_CapLed12;
m_pCapLed[12] = &m_CapLed13;
m_pCapLed[13] = &m_CapLed14;
m_pCapLed[14] = &m_CapLed15;
m_pCapLed[15] = &m_CapLed16;
for(i = 0; i < MAXVIEWNUM; i++)
{
m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
}
m_pAlarmLed[0] = &m_AlarmLed1;
m_pAlarmLed[1] = &m_AlarmLed2;
m_pAlarmLed[2] = &m_AlarmLed3;
m_pAlarmLed[3] = &m_AlarmLed4;
m_pAlarmLed[4] = &m_AlarmLed5;
m_pAlarmLed[5] = &m_AlarmLed6;
m_pAlarmLed[6] = &m_AlarmLed7;
m_pAlarmLed[7] = &m_AlarmLed8;
m_pAlarmLed[8] = &m_AlarmLed9;
m_pAlarmLed[9] = &m_AlarmLed10;
m_pAlarmLed[10] = &m_AlarmLed11;
m_pAlarmLed[11] = &m_AlarmLed12;
m_pAlarmLed[12] = &m_AlarmLed13;
m_pAlarmLed[13] = &m_AlarmLed14;
m_pAlarmLed[14] = &m_AlarmLed15;
m_pAlarmLed[15] = &m_AlarmLed16;
for(i = 0; i < MAXVIEWNUM; i++)
{
m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
}
}
void CNewclientDlg::F_InitDecodeCard()
{
int nDispNum = 0;
TRACE("Initialize decode card DS-4002MDI");
int iRet=NET_DVR_InitDDraw_Card(this->m_hWnd,0xff00ff);
iRet=NET_DVR_InitDevice_Card(&channelcount);
TRACE("ChannelCount = %d", channelcount);
if(channelcount <= 0)
{
AfxMessageBox("Please install the decode card!");
return;
}
else if(channelcount > 16)
{
channelcount = 16;
}
if(ClientParam.m_bNTSC)
{
nDispNum = GetDisplayChannelCount();
if (nDispNum >= 2)
{
REGION_PARAM param[MAX_DISPLAY_REGION];
int i;
memset(param, 0, sizeof(param));
for (i=0; i<MAX_DISPLAY_REGION; i++)
param[i].color = RGB(i, i*8, i*16);
for (i=0; i<nDispNum/2; i++)
{
SetDisplayStandard(2*i,StandardNTSC);
param[0].left=0; param[0].top=0; param[0].width=352; param[0].height=240;
param[1].left=352; param[1].top=0; param[1].width=352; param[1].height=240;
param[2].left=0; param[2].top=240; param[2].width=352; param[2].height=240;
param[3].left=352; param[3].top=240; param[3].width=352; param[3].height=240;
if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
{
TRACE("SetDisplayRegion failed!");
}
SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);
SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
SetDisplayStandard(2*i+1,StandardNTSC);
param[0].left=0; param[0].top=0; param[0].width=704; param[0].height=480;
if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
{
TRACE("SetDisplayRegion failed!");
}
SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);
}
}
}
else
{
nDispNum = GetDisplayChannelCount();
if (nDispNum >= 2)
{
REGION_PARAM param[MAX_DISPLAY_REGION];
int i;
memset(param, 0, sizeof(param));
for (i=0; i<MAX_DISPLAY_REGION; i++)
param[i].color = RGB(i, i*8, i*16);
for (i=0; i<nDispNum/2; i++)
{
SetDisplayStandard(2*i,StandardPAL);
param[0].left=0; param[0].top=0; param[0].width=352; param[0].height=288;
param[1].left=352; param[1].top=0; param[1].width=352; param[1].height=288;
param[2].left=0; param[2].top=288; param[2].width=352; param[2].height=288;
param[3].left=352; param[3].top=288; param[3].width=352; param[3].height=288;
if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
{
TRACE("SetDisplayRegion failed!");
}
SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);
SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
SetDisplayStandard(2*i+1,StandardPAL);
param[0].left=0; param[0].top=0; param[0].width=704; param[0].height=576;
if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
{
TRACE("SetDisplayRegion failed!");
}
SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?