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

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

?? leftview.cpp

?? 一個網絡監視的程序
?? CPP
字號:
// LeftView.cpp : implementation file
//

#include "stdafx.h"
#include "ccams.h"
#include "LeftView.h"
#include "SetClient.h"

//#include "ActivClient.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLeftView

IMPLEMENT_DYNCREATE(CLeftView, CFormView)

CLeftView::CLeftView()
	: CFormView(CLeftView::IDD)
{
	m_hPreItem = 0;
	//{{AFX_DATA_INIT(CLeftView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CLeftView::~CLeftView()
{
}

void CLeftView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLeftView)
	DDX_Control(pDX, IDC_TREE_CLIENTS, m_treeClients);
	DDX_Control(pDX, IDC_BUTTON_HISDIAG, m_butDiag);
	DDX_Control(pDX, IDC_BUTTON_HISLIST, m_butList);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CLeftView, CFormView)
	//{{AFX_MSG_MAP(CLeftView)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BUTTON_HISLIST, OnButtonHisList)
	ON_BN_CLICKED(IDC_BUTTON_HISDIAG, OnButtonHisDiag)
	ON_WM_TIMER()
	ON_NOTIFY(NM_DBLCLK, IDC_TREE_CLIENTS, OnDblclkTreeClients)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLeftView diagnostics

#ifdef _DEBUG
void CLeftView::AssertValid() const
{
	CFormView::AssertValid();
}

void CLeftView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CCCAMSDoc* CLeftView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCCAMSDoc)));
	return (CCCAMSDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CLeftView message handlers

//===============================================================
// 函 數 名:OnSize
// 功能描述:動態控制控件大小, 使控件占滿整個顯示區域
// 輸入參數:void
// 輸出參數:void
// 創建日期:04-7-18
// 修改日期:04-7-21
// 作    者:陳歡
// 調用函數: non
// 被調函數: 顯示區域大小變化時被調用
// 附加說明:重載父類函數
//===============================================================
void CLeftView::OnSize(UINT nType, int cx, int cy) 
{
//	CFormView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	this->ShowWindow(SW_MAXIMIZE);
	
	// 列表列表控件必須是第一個控件
	//CWnd *pchild = this->GetWindow(GW_CHILD); //Identifies the CWnd first child window

	CWnd *pchild = GetDlgItem( IDC_TREE_CLIENTS );
	if (pchild != NULL)
	{
		CRect rect;
		this->GetClientRect(&rect);
		pchild->ScreenToClient(&rect);
		pchild->SetWindowPos(NULL, 0, 30, rect.Width(), rect.Height()-30,
							SWP_NOZORDER | SWP_NOACTIVATE);
	}
}

//===============================================================
// 函 數 名:OnButtonHisList
// 功能描述:控制按鈕顯示效果
// 輸入參數:void
// 輸出參數:void
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: InitListTree
// 被調函數: OnInitialUpdate
// 修改變量: GetDocument()->m_nCurView
// 附加說明:單擊按鈕 "History List" 時的響應函數, 初始化時被調用一次
//===============================================================
void CLeftView::OnButtonHisList() 
{
	m_butDiag.SetState(false);
	m_butList.SetState(true);

	m_butDiag.EnableWindow( true );
	m_butList.EnableWindow( false );
	
	InitListTree();

	GetDocument()->m_nCurView = 0;
	GetDocument()->UpdateAllViews( this );
}

//===============================================================
// 函 數 名:OOnButtonHisDiag
// 功能描述:控制按鈕顯示效果
// 輸入參數:void
// 輸出參數:void
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: InitDiagTree
// 被調函數: non
// 修改變量: GetDocument()->m_nCurView
//===============================================================
void CLeftView::OnButtonHisDiag() 
{
	m_butDiag.SetState(true);
	m_butList.SetState(false);

	m_butDiag.EnableWindow( false );
	m_butList.EnableWindow( true );

	InitDiagTree();

	GetDocument()->m_nCurView = 1;
	GetDocument()->UpdateAllViews( this );
}

void CLeftView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	OnButtonHisList();

	m_treeClients.SetBkColor( RGB(255, 200, 0) );

	// 每間隔 1 秒, 更新主機列表;
	SetTimer( 1, 1000, 0 );
}

//===============================================================
// 函 數 名:InitListTree
// 功能描述:單擊 History List 時, 更新樹控件的內容
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: non
// 被調函數: OnButtonHisList
// 修改變量: m_hPreItem, GetDocument()->m_bClientEmpty
// 附加說明: 主機列表來自數據庫中的數據
//===============================================================
void CLeftView::InitListTree()
{
	//清空樹形控件中的原有內容
	if ( m_treeClients.GetCount() != 0 )
		m_treeClients.DeleteAllItems();

	//創建根項目
	TV_INSERTSTRUCT curItem;

	curItem.hParent = TVI_ROOT;			//the item is inserted at the root of the tree view control.		
	curItem.hInsertAfter = TVI_LAST;	//Inserts the item into the list in alphabetical order.
	curItem.item.mask = TVIF_TEXT;

	char root[] = "All Clients";
	curItem.item.pszText = root;
	m_hPreItem = m_treeClients.InsertItem( &curItem );

	curItem.hParent = m_hPreItem;	

	extern CRITICAL_SECTION g_criClientAccess;
	extern CSetClient	gm_setClient;
	EnterCriticalSection( &g_criClientAccess );
try
{
	if ( !gm_setClient.IsOpen() )
		gm_setClient.Open();
	gm_setClient.Requery();

	// 插入主機列表
	while ( !gm_setClient.IsEOF() )
	{
		curItem.item.pszText = gm_setClient.m_ip.GetBuffer( gm_setClient.m_ip.GetLength() );
		m_treeClients.InsertItem( &curItem );
		gm_setClient.MoveNext();
	}
	gm_setClient.Close();
} catch(...) {}

	LeaveCriticalSection( &g_criClientAccess );

	m_treeClients.Expand( m_hPreItem, TVE_EXPAND );	//展開所有目錄, 實際上就兩級目錄
	GetDocument()->m_bClientEmpty = m_treeClients.GetCount() <= 1;
	GetDocument()->UpdateAllViews(this);
}

//===============================================================
// 函 數 名:InitDiagTree
// 功能描述:單擊 History Diagram 時, 更新樹控件的內容
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: non
// 被調函數: OnButtonHisDiag
// 修改變量: m_hPreItem, GetDocument()->m_bClientEmpty
// 附加說明: 主機列表來自全局變量 theActiveClientList
//===============================================================
void CLeftView::InitDiagTree()
{
	//清空樹形控件中的原有內容
	if ( m_treeClients.GetCount() != 0 )
		m_treeClients.DeleteAllItems();

	//創建根項目
	TV_INSERTSTRUCT curItem;

	curItem.hParent = TVI_ROOT;			//the item is inserted at the root of the tree view control.		
	curItem.hInsertAfter = TVI_LAST;	//Inserts the item into the list in alphabetical order.
	curItem.item.mask = TVIF_TEXT;

	CString sRoot = "Active Clients";
	curItem.item.pszText = sRoot.GetBuffer(0);
	m_hPreItem = m_treeClients.InsertItem( &curItem );

	curItem.hParent = m_hPreItem;

	extern CRITICAL_SECTION g_criActiveClientList;
	extern ActivClient theActiveClientList;
	EnterCriticalSection( &g_criActiveClientList );
	int cout = theActiveClientList.GetCount();
	int i = 0;
	while ( i < cout )
	{
		curItem.item.pszText = theActiveClientList.m_caList[i].GetBuffer(0);
		m_treeClients.InsertItem( &curItem );
		i++;
	}
	LeaveCriticalSection( &g_criActiveClientList );

	m_treeClients.Expand( m_hPreItem, TVE_EXPAND );	//展開所有目錄, 實際上就兩級目錄
}

//===============================================================
// 函 數 名:OnTimer
// 功能描述:更新主機列表, 修改標志量
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: non
// 被調函數: OnButtonHisDiag
// 修改變量: 全局 bNewAccess
// 附加說明: 每一秒被調用一次
//===============================================================
void CLeftView::OnTimer(UINT nIDEvent)
{
	// 更新 History List 主機列表
	// 讀取當前列表中的主機個數, 與數據庫中的主機個數進行比較
	int listNum = m_treeClients.GetCount() - 1;	// 當前列表中的主機個數,  
	int DBNum = 0;		// 數據庫中的主機個數
	extern CRITICAL_SECTION g_criClientAccess;
	extern CSetClient	gm_setClient;
	EnterCriticalSection( &g_criClientAccess );
	if ( !gm_setClient.IsOpen() )
		gm_setClient.Open();
	gm_setClient.Requery();
	while ( !gm_setClient.IsEOF() )
	{
		DBNum++;
		gm_setClient.MoveNext();
	}
	gm_setClient.Close();
	LeaveCriticalSection( &g_criClientAccess );

	// 兩個數量不同, 且當前顯示的是 List, 更新
	if ( (listNum != DBNum) && !m_butList.IsWindowEnabled() )
		InitListTree();

	// 如果有新主機加入, 更新 History Diagram 主機列表
	extern CRITICAL_SECTION g_criNewAccess;
	extern bool bNewAccess;
	EnterCriticalSection( &g_criNewAccess );
	if ( bNewAccess && !m_butDiag.IsWindowEnabled() )
	{
		InitDiagTree();
		bNewAccess = false;
	}
	LeaveCriticalSection( &g_criNewAccess );

	CFormView::OnTimer(nIDEvent);
}

//===============================================================
// 函 數 名:OnDblclkTreeClients
// 功能描述:響應雙擊主機列表事件
// 創建日期:04-7-18
// 修改日期:04-7-20
// 作    者:陳歡
// 調用函數: non
// 被調函數: OnButtonHisDiag
// 修改變量: m_hPreItem
//===============================================================
void CLeftView::OnDblclkTreeClients(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
//	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;

	// 重復雙擊同一主機IP, 不處理
	HTREEITEM hItem = m_treeClients.GetSelectedItem();
	if ( hItem == m_hPreItem )
		return;
	m_hPreItem = hItem;

	// 若當前顯示 history list
	if ( !m_butList.IsWindowEnabled() )
	{
		// 雙擊根目錄時特別處理
		if ( hItem == m_treeClients.GetRootItem() )
			GetDocument()->m_strCurClient = "";
		else
			GetDocument()->m_strCurClient = m_treeClients.GetItemText( hItem );
	}
	else
	{
		// 雙擊根目錄時特別處理
		if ( hItem == m_treeClients.GetRootItem() )
			GetDocument()->m_strCurDiagramClient = "";
		else
			GetDocument()->m_strCurDiagramClient = m_treeClients.GetItemText( hItem );
	}
	GetDocument()->UpdateAllViews( this );

	*pResult = 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丝袜丝交足nylons图片| 在线亚洲+欧美+日本专区| 日韩激情中文字幕| 亚洲大型综合色站| 午夜精品久久久久久久蜜桃app| 夜夜夜精品看看| 一区二区三区四区激情| 亚洲精品国产一区二区精华液| 亚洲精品中文在线观看| 亚洲一二三四区不卡| 亚洲乱码日产精品bd| 亚洲第一福利视频在线| 理论片日本一区| 成人午夜在线视频| 色诱亚洲精品久久久久久| 欧美日韩一区二区在线视频| 日韩视频在线永久播放| 久久精品视频一区二区| 国产精品福利av| 午夜精品福利一区二区三区av| 久久精品99国产国产精| 丁香婷婷综合激情五月色| 色综合久久综合网97色综合| 欧美一区日韩一区| 国产蜜臀97一区二区三区 | 欧美大尺度电影在线| 精品美女一区二区三区| 中文字幕不卡在线观看| 亚洲不卡av一区二区三区| 精品一区二区三区蜜桃| 91在线小视频| 日韩一区二区三区四区五区六区| 久久久久久亚洲综合影院红桃 | 日韩欧美中文字幕精品| 久久精品一区二区三区不卡牛牛| 亚洲乱码日产精品bd| 国产在线精品一区在线观看麻豆| 91老司机福利 在线| 日韩欧美的一区| 亚洲精品中文字幕在线观看| 国内成人免费视频| 欧美电影影音先锋| 中文字幕日本乱码精品影院| 秋霞影院一区二区| 欧美主播一区二区三区美女| 久久九九国产精品| 免费日韩伦理电影| 欧美日本国产视频| 18涩涩午夜精品.www| 国产福利91精品一区二区三区| 欧美丰满美乳xxx高潮www| 亚洲欧洲另类国产综合| 国产精品自在在线| 精品福利二区三区| 日韩av电影天堂| 欧美性生活一区| 亚洲女性喷水在线观看一区| 成人国产精品免费网站| 久久亚洲精品小早川怜子| 捆绑变态av一区二区三区| 欧美亚洲日本国产| 亚洲黄色小说网站| 99久久国产综合精品女不卡| 国产精品人成在线观看免费| 亚洲乱码中文字幕综合| 色视频一区二区| 亚洲日本丝袜连裤袜办公室| av电影在线观看不卡| 亚洲国产成人私人影院tom| 国产麻豆欧美日韩一区| 精品久久五月天| 精品一区二区三区免费毛片爱| 日韩一区二区三区免费看| 天天爽夜夜爽夜夜爽精品视频| 91高清视频在线| 亚洲精品国产a| 色成人在线视频| 亚洲乱码日产精品bd| 欧美日韩在线播| 免费看黄色91| 久久综合久久综合亚洲| 韩国精品主播一区二区在线观看| 欧美精品一区二区精品网| 国产福利一区二区三区| 国产精品初高中害羞小美女文| 99国产精品久| 亚洲美女免费视频| 欧美精品乱码久久久久久按摩| 看片的网站亚洲| 国产精品久久久久一区二区三区 | 欧美在线一二三四区| 亚洲一区二区视频| 欧美一区二区精品在线| 黄页网站大全一区二区| 欧美高清在线一区| 在线观看不卡一区| 蜜臀av性久久久久av蜜臀妖精| 久久婷婷成人综合色| 91在线小视频| 蜜臀91精品一区二区三区| 久久男人中文字幕资源站| 99久久99久久久精品齐齐| 性久久久久久久久| 国产日韩精品一区二区三区| 色av一区二区| 精品亚洲国内自在自线福利| 中文字幕人成不卡一区| 欧美一级黄色大片| 亚洲成a天堂v人片| 蜜臀av性久久久久av蜜臀妖精| 欧美二区乱c少妇| 久久成人羞羞网站| 亚洲天堂福利av| 欧美成人猛片aaaaaaa| 9久草视频在线视频精品| 婷婷开心激情综合| 中文字幕一区二区三区视频| 777午夜精品免费视频| 丁香激情综合国产| 日本成人中文字幕在线视频 | 99九九99九九九视频精品| 偷窥少妇高潮呻吟av久久免费| 国产三级一区二区三区| 91精选在线观看| 91黄色激情网站| 国产成人av一区二区三区在线| 午夜影院久久久| 亚洲欧美日本韩国| 国产精品剧情在线亚洲| 精品福利在线导航| 欧美电影影音先锋| 欧美自拍丝袜亚洲| 91视频免费看| 99精品国产99久久久久久白柏| 国产电影精品久久禁18| 老汉av免费一区二区三区| 亚洲成a人片在线不卡一二三区 | 亚洲美女在线国产| 国产女人18毛片水真多成人如厕| 日韩欧美激情在线| 欧美一级夜夜爽| 欧美日韩夫妻久久| 欧美图区在线视频| 色拍拍在线精品视频8848| 99久久精品一区| 91网站最新网址| 91论坛在线播放| 91丨九色丨蝌蚪丨老版| 99久久免费精品高清特色大片| 成人黄色大片在线观看| 成人性生交大片免费看中文| 懂色av中文一区二区三区| 懂色av中文一区二区三区| 处破女av一区二区| 99久久久久免费精品国产| 99久久夜色精品国产网站| 91麻豆国产福利在线观看| 91久久人澡人人添人人爽欧美| 91女厕偷拍女厕偷拍高清| 91亚洲资源网| 欧美性大战xxxxx久久久| 欧美肥妇毛茸茸| 精品国产三级电影在线观看| wwwwxxxxx欧美| 中文字幕av不卡| 亚洲三级理论片| 日韩av午夜在线观看| 久久www免费人成看片高清| 国产伦精一区二区三区| 99视频超级精品| 在线成人免费观看| 欧美精品一区二区三区蜜桃 | 五月天国产精品| 日本伊人精品一区二区三区观看方式| 老司机一区二区| 丁香亚洲综合激情啪啪综合| 色婷婷精品久久二区二区蜜臀av | 韩国一区二区三区| 国产高清亚洲一区| 欧美制服丝袜第一页| 欧美成人三级在线| 日韩美女精品在线| 青青草91视频| av中文字幕亚洲| 欧美欧美欧美欧美首页| 国产午夜精品在线观看| 午夜伦理一区二区| 丰满少妇在线播放bd日韩电影| 精品视频免费在线| 国产欧美综合在线观看第十页| 亚洲一区二区精品视频| 国内精品久久久久影院色| 欧美三区在线观看| 国产精品久久久久精k8| 天使萌一区二区三区免费观看| av日韩在线网站| 欧美岛国在线观看| 亚洲主播在线观看| av成人免费在线观看| 欧美成人激情免费网|