亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cyclechild.cpp

?? 用大華sdk
?? CPP
字號:
  // CycleChild.cpp : implementation file

#include "stdafx.h"
#include "netsdkdemo.h"
#include "CycleChild.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCycleChild dialog
 
CCycleChild::CCycleChild(CWnd* pParent /*=NULL*/)
	: CDialog(CCycleChild::IDD, pParent)
{
	memset(&m_SplitInfo, 0, sizeof(DeviceNode));
	m_cmParam = NULL;
	//{{AFX_DATA_INIT(CCycleChild)
	m_cycleinterval = 0;
	//}}AFX_DATA_INIT
}

void CCycleChild::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCycleChild)
	DDX_Control(pDX, IDC_SPIN1, m_spin);
	DDX_Control(pDX, IDC_CHANNELSEL_LIST, m_childlist);
	DDX_Text(pDX, IDC_EDIT1, m_cycleinterval);
	DDV_MinMaxUInt(pDX, m_cycleinterval, 5, 36000);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCycleChild, CDialog)
	//{{AFX_MSG_MAP(CCycleChild)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCycleChild message handlers

void CCycleChild::SetScreenNo(int scrNo)
{
	m_screenNo = scrNo;
}

BOOL CCycleChild::OnInitDialog() 
{
	CDialog::OnInitDialog();
	g_SetWndStaticText(this);
	m_curRow = 0;

	m_childlist.SetExtendedStyle(m_childlist.GetExtendedStyle()|LVS_EX_FULLROWSELECT);

	m_childlist.InsertColumn(0, NAME_DEVICE, LVCFMT_LEFT, 120, 0);
	m_childlist.InsertColumn(1, NAME_CHANNEL, LVCFMT_LEFT, 60, 1);

	m_spin.SetBuddy((CEdit *)GetDlgItem(IDC_EDIT1));
	m_spin.SetRange(5,36000);
	m_spin.SetPos(50);

	((CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1))->EnableWindow(FALSE);
	((CEdit *)GetDlgItem(IDC_EDIT1))->EnableWindow(FALSE);
	m_cycleinterval = 10;
	SetDlgItemInt(IDC_EDIT1, m_cycleinterval, FALSE);
//	UpdateData(FALSE);

	m_pMain = (CNetSDKDemoDlg *)AfxGetMainWnd();
	BOOL bGetInfo = m_pMain->GetSplitInfo_Main(m_screenNo, &m_SplitInfo);
	if (!bGetInfo)
	{
		AfxMessageBox("error while getting split information");
		return TRUE;
	}
	RefreshList();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//刷新已有列表
void CCycleChild::RefreshList()
{
	if (m_SplitInfo.Type == SPLIT_TYPE_CYCLEMONITOR) 
	{
		//顯示于列表中
		DeviceNode *nDev;
		CString strDev;
		CString strChl;

		SplitCycleParam *cm_Param = (SplitCycleParam *)m_SplitInfo.Param;
		if (!m_cmParam)
		{
			m_cmParam = new SplitCycleParam;
		}
		memcpy(m_cmParam, cm_Param, sizeof(SplitCycleParam));
		m_cmParam->pChannelList = new CPtrList(sizeof(CycleChannelInfo));
		
		POSITION nPos = cm_Param->pChannelList->GetHeadPosition();
		for (int y = 0; y < cm_Param->iChannelCount; y++ )
		{
			CycleChannelInfo *chInfo = (CycleChannelInfo *)cm_Param->pChannelList->GetNext(nPos);
			
			CycleChannelInfo *newNode = new CycleChannelInfo;  //for local variate: parameter
			memcpy(newNode, chInfo, sizeof(CycleChannelInfo));
			m_cmParam->pChannelList->AddTail(newNode);

			CycleChannelInfo *newItem = new CycleChannelInfo;  //for list item
			memcpy(newItem, newNode, sizeof(CycleChannelInfo));
			nDev = (DeviceNode *)newItem->dwDeviceID;  
			strDev.Format(" %s (%s):",nDev->Name, nDev->IP);
			strChl.Format("chl %02d", newItem->iChannel + 1);
			m_childlist.InsertItem(m_curRow, strDev);
			m_childlist.SetItemText(m_curRow, 1, strChl);
			m_childlist.SetItemData(m_curRow, (DWORD)newItem);
			m_curRow++;
		}
	
		//顯示輪循時間間隔
		m_cycleinterval = cm_Param->iInterval;
		SetDlgItemInt(IDC_EDIT1, m_cycleinterval, FALSE);
		((CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1))->EnableWindow(TRUE);
		((CEdit *)GetDlgItem(IDC_EDIT1))->EnableWindow(TRUE);
	}
}

void CCycleChild::InsertItem(int row, CString item)
{
	m_childlist.InsertItem(row, item);
	m_curRow++;
}

void CCycleChild::SetItemText(int row, int column, CString text)
{
	m_childlist.SetItemText(row, column, text);
}

void CCycleChild::InitList(DWORD data)
{
//	m_pSplitInfo = (void *)new SplitInfoNode;
	m_SplitInfo.Type = SPLIT_TYPE_CYCLEMONITOR;
	if (!m_cmParam)
	{
		m_cmParam = new SplitCycleParam;
	}
	memset(m_cmParam, 0, sizeof(SplitCycleParam));
	
	m_cmParam->pChannelList = new CPtrList(sizeof(CycleChannelInfo));
	CycleChannelInfo *tempnode = new CycleChannelInfo;
	memcpy(tempnode, (CycleChannelInfo *)data, sizeof(CycleChannelInfo));
	
	m_cmParam->pChannelList->AddTail(tempnode);
	m_cmParam->iChannelCount++;
	//輪循間隔初始化為10秒
	m_cmParam->iInterval = 10;
}

void CCycleChild::SetItemData(int row, DWORD data)
{
	m_childlist.SetItemData(row, data);
	if (!m_cmParam)
	{
		//初始化該窗口的輪循列表
		InitList(data);
		((CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1))->EnableWindow(TRUE);
		((CEdit *)GetDlgItem(IDC_EDIT1))->EnableWindow(TRUE);
		return;
	}
	else
	{
		//添加列表節點
		CycleChannelInfo *tempnode = new CycleChannelInfo;
		memcpy(tempnode, (CycleChannelInfo *)data, sizeof(CycleChannelInfo));

		m_cmParam->pChannelList->AddTail(tempnode);
		m_cmParam->iChannelCount++;
	}
}

int CCycleChild::GetCurRow()
{
	return m_curRow;
}

int CCycleChild::GetSelectionMark()
{
	return m_childlist.GetSelectionMark();
}

DWORD CCycleChild::GetItemData(int row)
{
	return m_childlist.GetItemData(row);
}

CString CCycleChild::GetItemText(int row, int column)
{
	return m_childlist.GetItemText(row, column);
}

void CCycleChild::DeleteItem(int index)
{
	m_childlist.DeleteItem(index);
	m_curRow--;	
	if (m_cmParam && m_cmParam->iChannelCount == 1)
	{
		//只剩一個節點的情況
		delete (CycleChannelInfo *)m_cmParam->pChannelList->GetTail();
		m_cmParam->pChannelList->RemoveAll();
		delete m_cmParam->pChannelList;
		delete m_cmParam;
		m_cmParam = NULL;
		
		((CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1))->EnableWindow(FALSE);
		((CEdit *)GetDlgItem(IDC_EDIT1))->EnableWindow(FALSE);
	}
	else
	{
		//刪除之
		POSITION nPos = m_cmParam->pChannelList->FindIndex(index);
		delete (CycleChannelInfo *)m_cmParam->pChannelList->GetAt(nPos);
		m_cmParam->pChannelList->RemoveAt(nPos);
		m_cmParam->iChannelCount--;
	}
	
	m_childlist.SetFocus();
}

void CCycleChild::OnOK()
{
	//釋放內存
	for (int j = 0; j < m_curRow; j++)
	{
		delete (CycleChannelInfo *)m_childlist.GetItemData(j);
	}
	//輸出輪循信息
	if (m_cmParam) 
	{
		//讀取用戶設置的時間間隔
		BOOL ret = UpdateData(TRUE);
		if (ret)
		{
			m_cmParam->iInterval = m_cycleinterval;
		}
		else
		{
			//輸入的時間間隔不合法
			return ;
		}

		ret = m_pMain->ProcessCloseScreen(m_screenNo);
		if (!ret)
		{
			MessageBox("check this out!");
		}

		//將本地信息回寫到全局變量里
		m_SplitInfo.Param = m_cmParam;
		ret = m_pMain->SetSplitInfo_Main(m_screenNo, &m_SplitInfo);
		if (!ret)
		{
			MessageBox("check that out!");
		}
	}
	//原先在輪循,現在列表被清空的情況
	else if (m_SplitInfo.Type == SPLIT_TYPE_CYCLEMONITOR)
	{
		BOOL ret = m_pMain->ProcessCloseScreen(m_screenNo);
		if (!ret)
		{
			MessageBox("plz check this out!");
		}
	}
}

void CCycleChild::OnCancel()
{
	//釋放內存
	for (int j = 0; j < m_curRow; j++)
	{
		delete (CycleChannelInfo *)m_childlist.GetItemData(j);
	}
	if (m_cmParam) 
	{ 
		int count = m_cmParam->pChannelList->GetCount();
		for (int i = 0; i < count; i++)
		{
			delete (CycleChannelInfo *)m_cmParam->pChannelList->GetTail();
			m_cmParam->pChannelList->RemoveTail();
		}
		delete m_cmParam->pChannelList;
		delete m_cmParam;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7799精品视频| 亚洲色图色小说| 亚洲欧美日韩在线| 毛片一区二区三区| 在线亚洲一区观看| 中文字幕乱码一区二区免费| 亚洲国产精品影院| 91美女福利视频| 国产午夜精品福利| 毛片基地黄久久久久久天堂| 欧美日韩国产小视频在线观看| 欧美国产乱子伦| 国产美女精品在线| 欧美不卡视频一区| 日本在线不卡视频一二三区| 在线看一区二区| 18涩涩午夜精品.www| 国产a精品视频| 久久综合色天天久久综合图片| 亚洲国产精品久久久男人的天堂| 91免费看`日韩一区二区| 久久久久久久久久久久电影| 韩国视频一区二区| 精品国产亚洲在线| 国产永久精品大片wwwapp| 日韩久久久精品| 日本麻豆一区二区三区视频| 91麻豆精品国产91久久久资源速度 | 国产精品国产a级| 国产v日产∨综合v精品视频| 国产亚洲欧美日韩俺去了| 加勒比av一区二区| 精品国产一二三| 国产成人丝袜美腿| 国产精品美女久久久久久久网站| 国产成人精品免费| 国产精品国产馆在线真实露脸| 成人午夜电影网站| 亚洲日韩欧美一区二区在线| 91女神在线视频| 亚欧色一区w666天堂| 91精品国产综合久久福利软件 | 91精品国产综合久久精品| 欧美aⅴ一区二区三区视频| 91精品国产欧美一区二区| 日韩在线观看一区二区| 日韩一区二区免费在线电影| 国产麻豆午夜三级精品| 国产欧美日韩中文久久| 91美女在线观看| 亚洲成a天堂v人片| 欧美一区二区免费视频| 国产美女一区二区三区| 亚洲品质自拍视频网站| 欧美日韩你懂的| 日本不卡免费在线视频| 久久久久久久电影| 91精品福利在线| 蜜臀91精品一区二区三区| 中文字幕第一区| 欧美猛男超大videosgay| 精品一区二区三区蜜桃| 欧美一级高清片在线观看| 国产黄色精品网站| 亚洲国产精品久久一线不卡| 久久一留热品黄| 在线亚洲人成电影网站色www| 日本不卡视频在线| 亚洲三级在线播放| 日韩欧美国产三级| 色婷婷精品大视频在线蜜桃视频| 日韩国产一二三区| 椎名由奈av一区二区三区| 欧美一区二区不卡视频| 99久久精品国产一区二区三区| 日韩精品一级二级 | 99久久久国产精品免费蜜臀| 日韩综合小视频| 中文字幕av不卡| 欧美日韩国产a| 91在线小视频| 国产成人精品一区二区三区网站观看| 亚洲尤物在线视频观看| 国产色91在线| 91精品国产手机| 色婷婷av一区二区三区之一色屋| 韩国女主播一区二区三区| 亚洲国产精品久久一线不卡| 中文字幕视频一区| 久久久精品2019中文字幕之3| 欧美夫妻性生活| 色www精品视频在线观看| 国产精品亚洲专一区二区三区 | 亚洲一区在线观看免费 | 欧美视频一区在线| 99久久婷婷国产| 国产不卡视频一区二区三区| 另类小说视频一区二区| 天天操天天干天天综合网| 1区2区3区欧美| 国产精品初高中害羞小美女文| 久久中文字幕电影| 日韩欧美高清dvd碟片| 欧美精品久久一区| 欧美伦理电影网| 欧美婷婷六月丁香综合色| 色88888久久久久久影院野外| 成人黄色软件下载| caoporn国产精品| proumb性欧美在线观看| 国产91丝袜在线播放九色| 国产精品一区二区三区乱码| 激情综合色播激情啊| 激情文学综合插| 狠狠色综合播放一区二区| 毛片不卡一区二区| 国产精品久久二区二区| 91免费看片在线观看| 成人国产在线观看| 亚洲国产sm捆绑调教视频| 亚洲综合色噜噜狠狠| 亚洲欧美激情插 | 奇米精品一区二区三区四区| 午夜欧美视频在线观看| 免费观看在线综合| 国内久久精品视频| 丰满少妇在线播放bd日韩电影| 成人免费的视频| 日本精品一级二级| 欧美日韩中文一区| 欧美电视剧在线看免费| 久久一留热品黄| 亚洲婷婷国产精品电影人久久| 亚洲免费毛片网站| 日本不卡视频在线| 国产精品99久久不卡二区| 成人av电影在线| 欧美偷拍一区二区| 欧美电视剧免费观看| 国产欧美一区二区三区在线看蜜臀 | 一区在线观看视频| 亚洲午夜在线观看视频在线| 热久久国产精品| 成人免费的视频| 欧美精品一二三四| 久久精品水蜜桃av综合天堂| 亚洲欧美日韩成人高清在线一区| 日韩电影在线免费观看| 国产成人av一区二区三区在线观看| 色婷婷av久久久久久久| 欧美成人高清电影在线| 中文字幕在线观看不卡| 日韩精品视频网站| 成人av网站免费| 日韩你懂的在线观看| 综合激情成人伊人| 九九精品视频在线看| 欧美亚洲图片小说| 欧美国产成人在线| 免费久久99精品国产| 91久久免费观看| 337p日本欧洲亚洲大胆精品| 一区二区三区中文免费| 国产一区二区三区蝌蚪| 欧美日本一道本在线视频| 国产欧美精品一区aⅴ影院| 天天做天天摸天天爽国产一区 | 国产一区二区电影| 欧美猛男gaygay网站| 日韩一区在线免费观看| 国产一区二区三区精品欧美日韩一区二区三区 | 成人av小说网| 久久综合久久综合九色| 五月激情综合婷婷| 欧美性xxxxxx少妇| 国产精品高潮久久久久无| 国产美女视频91| 日韩一区二区三区观看| 丝袜美腿一区二区三区| 一道本成人在线| 最新久久zyz资源站| 国产一区二三区| 日韩精品中文字幕在线不卡尤物| 亚洲v日本v欧美v久久精品| 91麻豆国产在线观看| 中文一区二区在线观看| 国产精品1区2区3区| 日韩欧美在线综合网| 日韩在线a电影| 91精品国产一区二区三区| 一区二区久久久久久| 色综合久久久久综合体| |精品福利一区二区三区| 风流少妇一区二区| 久久精品在线免费观看| 国产精品99久| 中文字幕二三区不卡| 99re视频这里只有精品| 亚洲少妇最新在线视频| 色综合一区二区|