?? newclientdlg.cpp
字號:
{
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(hikClientParam.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:
// wndsize為TRUE時,表示畫面中的某個窗口放大;
// wndsize為FALSE時,表示畫面只有一個窗口,也就不需要放大、縮小;
if(hikClientParam.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(hikClientParam.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)
{//放大
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
{//縮小
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 i;
int nDispNum = 0;
TRACE("初始化解碼卡");
int iRet=NET_DVR_InitDDraw_Card(this->m_hWnd,0xff00ff);
iRet=NET_DVR_InitDevice_Card(&channelcount);
TRACE("ChannelCount = %d", channelcount);
if(channelcount <= 0)
{
AfxMessageBox("請插入解碼卡!");
return;
}
else if(channelcount > 16)
{
channelcount = 16;
}
ULONG nTemp;
for(i=0;i<channelcount;i++)
{
NET_DVR_GetSerialNum_Card(i,&nTemp);
TRACE("NET_DVR_GetSerialNum_Card:i:%d,%x",i,nTemp);
}
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++)
{
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);
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);
}
}
if(channelcount==1)
{
WINDOWNUM=1;
m_windownum.SetCurSel(0);
}
else if (channelcount<=4)
{
WINDOWNUM=4;
m_windownum.SetCurSel(1);
}
else if(channelcount<=9)
{
WINDOWNUM = 9;
m_windownum.SetCurSel(2);
}
else
{
m_windownum.SetCurSel(3);
WINDOWNUM = 16;
}
}
void CNewclientDlg::OnAudioexchange()
{
// TODO: Add your control notification handler code here
if(lVoiceIndex == -1)
{
CVoiceExchange VoiceDlg;
VoiceDlg.DoModal();
if(lVoiceIndex != -1)
{
GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("停止對講");
}
}
else
{
if(NET_DVR_StopVoiceCom(lVoiceIndex))
{
GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("語音對講");
lVoiceIndex = -1;
}
else
{
AfxMessageBox("停止語音對講失敗!");
}
}
}
void CNewclientDlg::OnSystemcfg()
{
// TODO: Add your control notification handler code here
CSystemConfig SysCfgDlg;
SysCfgDlg.DoModal();
if(nUseCard == 1)
{
channelcount = 0;
F_InitDecodeCard();
ArrayWindow(0,WINDOWNUM);
MoveCurWin(WINDOWNUM,0);
nUseCard = 0;
}
if(nUseCard == 2)
{
NET_DVR_ReleaseDevice_Card();
NET_DVR_ReleaseDDraw_Card();
nUseCard = 0;
}
if(hikClientParam.m_bCheckServerTime)
{
if(checkservertimer == 0)
{
TRACE("啟動硬盤錄像機校時時鐘,校時時間是每天的%06d", hikClientParam.m_iCheckServerTime);
checkservertimer = SetTimer(CHECKSERVER_TIMER, 1000, NULL);
}
}
else
{
if(checkservertimer)
{
// TRACE("關閉硬盤錄像機校時時鐘");
KillTimer(CHECKSERVER_TIMER);
checkservertimer = 0;
}
}
F_JudgeDiskFull();
}
void CNewclientDlg::OnSelchangeCombowndnum()
{
// TODO: Add your control notification handler code here
int i;
WORD wndnum;
i = m_windownum.GetCurSel();
switch(i)
{
case 0:
wndnum = 1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -