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

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

?? datamanagerview.cpp

?? 網絡數據管理軟件 vc++編寫 提供了一個網絡管理的絕美范例 可以參考 開發自個的網絡數據管理軟件
?? CPP
字號:
// DataManagerView.cpp : implementation of the CDataManagerView class
//

#include "stdafx.h"
#include "DataManager.h"
#include "MainFrm.h"

#include "DataManagerDoc.h"
#include "DataManagerView.h"
#include "LeftView.h"
#include "PointDialog.h"
#include "UnitDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDataManagerView

IMPLEMENT_DYNCREATE(CDataManagerView, CListView)

BEGIN_MESSAGE_MAP(CDataManagerView, CListView)
	//{{AFX_MSG_MAP(CDataManagerView)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_ADDPOINT, OnAddpoint)
	ON_COMMAND(ID_DELETEPOINT, OnDeletepoint)
	ON_COMMAND(ID_ADDUNIT, OnAddunit)
	ON_COMMAND(ID_DELETEUNIT, OnDeleteunit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDataManagerView construction/destruction

CDataManagerView::CDataManagerView()
{
	// TODO: add construction code here

}

CDataManagerView::~CDataManagerView()
{
}

BOOL CDataManagerView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CDataManagerView drawing

void CDataManagerView::OnDraw(CDC* pDC)
{
	CDataManagerDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CDataManagerView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();

	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
	CListCtrl& m_list=GetListCtrl();
	m_list.ModifyStyle(LVS_LIST|LVS_SMALLICON|LVS_ICON,
		LVS_REPORT|LVS_SHOWSELALWAYS|LVS_AUTOARRANGE);
	m_list.SetColumnWidth(-1,LVSCW_AUTOSIZE_USEHEADER );
}

/////////////////////////////////////////////////////////////////////////////
// CDataManagerView diagnostics

#ifdef _DEBUG
void CDataManagerView::AssertValid() const
{
	CListView::AssertValid();
}

void CDataManagerView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CDataManagerView message handlers
void CDataManagerView::OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
{
	//TODO: add code to react to the user changing the view style of your window
}

void CDataManagerView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	int i;
	CString strSelectedSegment,strSelectedUnit;
	CControlSegment *p_Segment; 
	CControlUnit *p_Unit;
	CControlPoint *p_Point;

	if (pHint==NULL) 
		return;
	CListCtrl& m_list=GetListCtrl();
	CTreeCtrl& m_tree=((CLeftView*)pHint)->GetTreeCtrl();

	HTREEITEM hItem=m_tree.GetSelectedItem();
	int nLevel=m_tree.GetItemData(hItem);  
	switch(nLevel)
	{
		case 0:
			while(m_list.DeleteColumn(0)); 
			m_list.DeleteAllItems();
			m_list.InsertColumn(0,"單元",LVCFMT_LEFT,90,-1); 
			
			strSelectedSegment=m_tree.GetItemText(hItem);
			p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
			if (p_Segment==NULL)
				return;

			for (i=0;i<p_Segment->GetUnitCount();i++)
			{
				p_Unit=p_Segment->GetUnit(i);
				CString str1;
				str1=p_Unit->GetUnitName();
				m_list.InsertItem(LVIF_TEXT|LVIF_STATE,i,str1,0,
					LVIS_SELECTED,0,0);
			}

			break;
		case 1:
			while(m_list.DeleteColumn(0)); 
			m_list.DeleteAllItems();
			m_list.ModifyStyle(LVS_LIST|LVS_SMALLICON|LVS_ICON,
				LVS_REPORT|LVS_SHOWSELALWAYS);

			m_list.InsertColumn(0,"點名",LVCFMT_LEFT,90,-1); 
			m_list.InsertColumn(1,"當前值",LVCFMT_LEFT,90,-1); 
			m_list.InsertColumn(2,"說明",LVCFMT_LEFT,90,-1); 
			
			strSelectedSegment=m_tree.GetItemText(
				m_tree.GetParentItem(hItem));
			p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
			if (p_Segment==NULL)
				return;

			strSelectedUnit=m_tree.GetItemText(hItem);
			p_Unit=p_Segment->GetUnit(strSelectedUnit);
			if(p_Unit==NULL)
				return;

			for (i=0;i<p_Unit->GetPointCount();i++)
			{
				p_Point=p_Unit->GetPoint(i);
				CString str1;
				str1=p_Point->GetPointName();
				m_list.InsertItem(LVIF_TEXT|LVIF_STATE,i,str1,0,
					LVIS_SELECTED,0,0);
				m_list.SetItemText(i,1,p_Point->GetPointValue());
				m_list.SetItemText(i,2,p_Point->GetPointMemo());
			}

			m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT
				|LVS_EX_GRIDLINES|LVS_EX_TRACKSELECT);

			break;
	}
}

void CDataManagerView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CListView::OnRButtonDown(nFlags, point);
    CMenu PopMenu; 
	CMenu *pMenu; 
    CPoint pt; 
    pt= point; 
     
    PopMenu.LoadMenu(IDR_EDIT); 
    ClientToScreen(&pt); 
    // show the menu (returns, when menu is closed again!) 

	CDataManagerDoc* m_pDoc=(CDataManagerDoc*)((CMainFrame*)
		AfxGetApp()->m_pMainWnd)->GetActiveDocument();
	POSITION pos=m_pDoc->GetFirstViewPosition();
	
	CLeftView* p_TreeView;
	while (pos != NULL) 
	{ 
		CView* pView = m_pDoc->GetNextView(pos); 
		if(pView->IsKindOf(RUNTIME_CLASS(CLeftView)))
		{
			p_TreeView=(CLeftView*)pView;
		}
	}
	CTreeCtrl& m_tree=p_TreeView->GetTreeCtrl();
	
	HTREEITEM hItem=m_tree.GetSelectedItem();
	if(hItem==NULL)
		return;
	int nLevel=m_tree.GetItemData(hItem);  
	switch(nLevel)
	{
	case 0:
	    pMenu = PopMenu.GetSubMenu(1); 
		break;
	case 1:
	    pMenu = PopMenu.GetSubMenu(2); 
		break;
	}

    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
		pt.x,pt.y,this); 
}

void CDataManagerView::OnAddpoint() 
{
	// TODO: Add your command handler code here
	int i=0;
	CString strSelectedSegment,strSelectedUnit;
	CControlSegment *p_Segment; 
	CControlUnit *p_Unit;
	CControlPoint *p_Point;

	CDataManagerDoc* m_pDoc=(CDataManagerDoc*)((CMainFrame*)
		AfxGetApp()->m_pMainWnd)->GetActiveDocument();
	POSITION pos=m_pDoc->GetFirstViewPosition();
	
	CLeftView* p_TreeView;
	CDataManagerView* p_ListView;
	while (pos != NULL) 
	{ 
		CView* pView = m_pDoc->GetNextView(pos); 
		if(pView->IsKindOf(RUNTIME_CLASS(CLeftView)))
		{
			p_TreeView=(CLeftView*)pView;
		}
		else if(pView->IsKindOf(RUNTIME_CLASS(CDataManagerView)))
		{
			p_ListView=(CDataManagerView*)pView;
		}
	}
	CListCtrl& m_list=p_ListView->GetListCtrl();
	CTreeCtrl& m_tree=p_TreeView->GetTreeCtrl();
	
	HTREEITEM hItem=m_tree.GetSelectedItem();
	strSelectedSegment=m_tree.GetItemText(
		m_tree.GetParentItem(hItem));
	p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
	if (p_Segment==NULL)
		return;

	strSelectedUnit=m_tree.GetItemText(hItem);
	p_Unit=p_Segment->GetUnit(strSelectedUnit);
	if(p_Unit==NULL)
		return;
		
	CPointDialog dlg_Point;
	if(dlg_Point.DoModal()==IDOK)
	{
		p_Point=new CControlPoint;
		p_Point->m_strPointName=dlg_Point.m_PointName;
		p_Point->m_strValue=dlg_Point.m_PointValue;
		p_Point->m_strMemo=dlg_Point.m_PointMemo;  
		p_Unit->AddPoint(p_Point);
	}
}

void CDataManagerView::OnDeletepoint() 
{
	// TODO: Add your command handler code here
	if(AfxMessageBox("刪除此點嗎?",MB_YESNO)==6)
	{
		int i=0;
		CString strSelectedSegment,strSelectedUnit;
		CControlSegment *p_Segment; 
		CControlUnit *p_Unit;
		CControlPoint *p_Point;

		CDataManagerDoc* m_pDoc=(CDataManagerDoc*)((CMainFrame*)
			AfxGetApp()->m_pMainWnd)->GetActiveDocument();
		POSITION pos=m_pDoc->GetFirstViewPosition();
		
		CLeftView* p_TreeView;
		CDataManagerView* p_ListView;
		while (pos != NULL) 
		{ 
			CView* pView = m_pDoc->GetNextView(pos); 
			if(pView->IsKindOf(RUNTIME_CLASS(CLeftView)))
			{
				p_TreeView=(CLeftView*)pView;
			}
			else if(pView->IsKindOf(RUNTIME_CLASS(CDataManagerView)))
			{
				p_ListView=(CDataManagerView*)pView;
			}
		}
		CListCtrl& m_list=p_ListView->GetListCtrl();
		CTreeCtrl& m_tree=p_TreeView->GetTreeCtrl();
		
		HTREEITEM hItem=m_tree.GetSelectedItem();
		strSelectedSegment=m_tree.GetItemText(
			m_tree.GetParentItem(hItem));
		p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
		if (p_Segment==NULL)
			return;

		strSelectedUnit=m_tree.GetItemText(hItem);
		p_Unit=p_Segment->GetUnit(strSelectedUnit);
		if(p_Unit==NULL)
			return;

		int item= m_list.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
		p_Point=p_Unit->GetPoint(m_list.GetItemText(item,0));

		if(p_Point==NULL)
			return;
		p_Unit->DeletePoint(p_Point); 
	}	
}

void CDataManagerView::OnAddunit() 
{
	// TODO: Add your command handler code here
	CString strSelectedSegment;
	CControlSegment *p_Segment; 

	CDataManagerDoc* m_pDoc=(CDataManagerDoc*)((CMainFrame*)
		AfxGetApp()->m_pMainWnd)->GetActiveDocument();
	POSITION pos=m_pDoc->GetFirstViewPosition();
	
	CLeftView* p_TreeView;
	CDataManagerView* p_ListView;
	while (pos != NULL) 
	{ 
		CView* pView = m_pDoc->GetNextView(pos); 
		if(pView->IsKindOf(RUNTIME_CLASS(CLeftView)))
		{
			p_TreeView=(CLeftView*)pView;
		}
		else if(pView->IsKindOf(RUNTIME_CLASS(CDataManagerView)))
		{
			p_ListView=(CDataManagerView*)pView;
		}
	}
	CListCtrl& m_list=p_ListView->GetListCtrl();
	CTreeCtrl& m_tree=p_TreeView->GetTreeCtrl();
	
	HTREEITEM hItem=m_tree.GetSelectedItem();
	strSelectedSegment=m_tree.GetItemText(hItem);
	p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
	if (p_Segment==NULL)
		return;
	
	CUnitDialog dlg_Unit;
	if(dlg_Unit.DoModal()==IDOK)
	{
		p_Segment->AddUnit(dlg_Unit.m_UnitName);
	}
}

void CDataManagerView::OnDeleteunit() 
{
	// TODO: Add your command handler code here
	if(AfxMessageBox("刪除此單元嗎?",MB_YESNO)==6)
	{
		CString strSelectedSegment,strSelectedUnit;
		CControlSegment *p_Segment; 
		CControlUnit *p_Unit;

		CDataManagerDoc* m_pDoc=(CDataManagerDoc*)((CMainFrame*)
			AfxGetApp()->m_pMainWnd)->GetActiveDocument();
		POSITION pos=m_pDoc->GetFirstViewPosition();
		
		CLeftView* p_TreeView;
		CDataManagerView* p_ListView;
		while (pos != NULL) 
		{ 
			CView* pView = m_pDoc->GetNextView(pos); 
			if(pView->IsKindOf(RUNTIME_CLASS(CLeftView)))
			{
				p_TreeView=(CLeftView*)pView;
			}
			else if(pView->IsKindOf(RUNTIME_CLASS(CDataManagerView)))
			{
				p_ListView=(CDataManagerView*)pView;
			}
		}
		CListCtrl& m_list=p_ListView->GetListCtrl();
		CTreeCtrl& m_tree=p_TreeView->GetTreeCtrl();
		
		HTREEITEM hItem=m_tree.GetSelectedItem();
		strSelectedSegment=m_tree.GetItemText(hItem);
		p_Segment=p_ControlModule->GetSegment(strSelectedSegment); 
		if (p_Segment==NULL)
			return;

		pos=m_list.GetFirstSelectedItemPosition();
		strSelectedUnit=m_list.GetItemText(
			m_list.GetNextSelectedItem(pos),0);
		
		p_Unit=p_Segment->GetUnit(strSelectedUnit);
		if(p_Unit==NULL)
			return;

		p_Segment->DeleteUnit(p_Unit); 
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久使用方法 | 激情av综合网| 91国产精品成人| 日本不卡一区二区三区高清视频| 日韩精品一区二区三区三区免费| 国产精品 欧美精品| 亚洲黄色免费电影| 日韩免费性生活视频播放| 激情综合网av| 亚洲精品免费播放| 日韩色视频在线观看| 处破女av一区二区| 丝袜美腿亚洲一区| 中文字幕在线视频一区| 欧美老肥妇做.爰bbww视频| 国产精品一区二区在线播放| 亚洲最大成人网4388xx| 亚洲精品一区在线观看| 91国偷自产一区二区开放时间| 国模一区二区三区白浆| 一区二区三区免费| 国产色一区二区| 8x福利精品第一导航| www.亚洲人| 国产资源在线一区| 视频一区在线视频| 亚洲视频狠狠干| 久久女同互慰一区二区三区| 欧美日本在线观看| 色偷偷88欧美精品久久久| 九九视频精品免费| 亚洲国产精品嫩草影院| 国产精品久久久久久久蜜臀| 欧美电影免费提供在线观看| 欧美日韩一区中文字幕| 99在线精品视频| 国产91丝袜在线观看| 激情五月播播久久久精品| 婷婷夜色潮精品综合在线| 一区二区三区日韩欧美| 中文字幕一区二区三区视频| www欧美成人18+| 日韩欧美亚洲另类制服综合在线| 91传媒视频在线播放| jizz一区二区| 成人精品视频一区二区三区尤物| 狠狠色丁香久久婷婷综合_中| 婷婷综合五月天| 亚洲国产欧美在线| 亚洲一区二区综合| 亚洲一区二区免费视频| 亚洲精品国产精华液| 中文字幕一区二区5566日韩| 欧美国产精品专区| 中文字幕第一页久久| 国产丝袜美腿一区二区三区| 26uuu色噜噜精品一区| 欧美一区二区久久| 欧美美女喷水视频| 51精品久久久久久久蜜臀| 欧美日韩国产123区| 在线成人av网站| 欧美日韩一区精品| 欧美日韩精品一区二区天天拍小说| 在线观看免费亚洲| 欧美四级电影网| 欧美久久久久中文字幕| 7777女厕盗摄久久久| 欧美一区二区在线播放| 日韩欧美一区二区视频| 欧美变态口味重另类| 精品久久久久香蕉网| 久久综合久久久久88| 国产亚洲污的网站| 国产精品免费视频网站| 亚洲女人****多毛耸耸8| 夜色激情一区二区| 奇米精品一区二区三区四区 | 国产精品美女久久久久久久 | 在线播放日韩导航| 精品免费视频.| 中文字幕av资源一区| 亚洲人成网站影音先锋播放| 亚洲影院在线观看| 另类小说欧美激情| 粉嫩一区二区三区在线看| 日本道在线观看一区二区| 欧美日韩国产经典色站一区二区三区| 91麻豆精品久久久久蜜臀| 日韩一级欧美一级| 亚洲国产精品成人久久综合一区| 亚洲精品久久7777| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品一区二区91| 94-欧美-setu| 欧美疯狂性受xxxxx喷水图片| 久久亚洲一区二区三区四区| 最新不卡av在线| 日韩在线一区二区三区| 国产精品99久| 欧美视频日韩视频| 久久夜色精品国产噜噜av| 亚洲男女一区二区三区| 精品写真视频在线观看| 91在线你懂得| 日韩久久免费av| 玉足女爽爽91| 国产精品一区三区| 欧日韩精品视频| 久久蜜臀精品av| 亚洲一区欧美一区| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产另类一区| 国产精品视频一二三| 丝袜a∨在线一区二区三区不卡| 成人妖精视频yjsp地址| 欧美剧在线免费观看网站| 国产精品久久久久久久久快鸭 | 偷拍一区二区三区| 91亚洲精品久久久蜜桃网站| 日韩西西人体444www| 亚洲黄色免费网站| 成人免费毛片高清视频| 日韩三级视频在线观看| 亚洲免费观看高清完整| 国产不卡视频在线观看| 日韩欧美一区二区在线视频| 亚洲你懂的在线视频| 成人丝袜高跟foot| 精品国产精品一区二区夜夜嗨| 午夜精品久久一牛影视| av一区二区三区在线| 久久男人中文字幕资源站| 蜜乳av一区二区三区| 欧美人伦禁忌dvd放荡欲情| 亚洲裸体xxx| 成人黄色在线看| 久久久久久综合| 九九**精品视频免费播放| 69久久夜色精品国产69蝌蚪网| 亚洲男人都懂的| 91女厕偷拍女厕偷拍高清| 欧美国产精品一区| 国产乱码精品一品二品| 日韩免费视频线观看| 免费人成精品欧美精品| 欧美日韩国产综合一区二区三区 | 国产精品午夜在线观看| 国产一区二区在线电影| 精品国产一区二区三区久久影院 | 亚洲午夜免费福利视频| 日本精品免费观看高清观看| 日韩一区欧美一区| av一区二区三区四区| 中文字幕亚洲成人| 99re这里只有精品首页| 亚洲欧美日韩系列| 91福利国产成人精品照片| 一区二区三区欧美激情| 欧美色涩在线第一页| 香蕉成人伊视频在线观看| 欧美精品在线一区二区| 男人的j进女人的j一区| 日韩午夜激情视频| 国产一区亚洲一区| 91.com视频| 九九**精品视频免费播放| 久久精品人人做| 成人免费视频免费观看| 久久久.com| 国产成人免费网站| 国产欧美日韩综合| 丁香桃色午夜亚洲一区二区三区| 91精品国产黑色紧身裤美女| 日本午夜一区二区| 欧美日韩亚洲综合一区 | 日韩不卡一区二区三区| 精品久久久久久最新网址| 国产精品一卡二| 亚洲欧洲成人精品av97| 欧美亚洲精品一区| 另类专区欧美蜜桃臀第一页| 2021国产精品久久精品| 成人晚上爱看视频| 亚洲一二三专区| 欧美日韩你懂得| 精品午夜久久福利影院| 中文字幕乱码久久午夜不卡 | 91啪亚洲精品| 日本伊人色综合网| 久久久精品蜜桃| 91免费小视频| 久久精品99久久久| 中文字幕一区免费在线观看| 4438x亚洲最大成人网| 国产激情精品久久久第一区二区| 亚洲午夜免费福利视频| 久久久久九九视频| 欧美视频在线一区二区三区 | 美女视频黄免费的久久|