⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lefttreedisp.cpp

📁 USB便携式多通道分析仪的PC端软件
💻 CPP
字号:
// LeftTreeDisp.cpp : implementation file
//


#include "stdafx.h"
#include "mcds.h"
#include "LeftTreeDisp.h"
#include "TreeDlg.h"
#include "GlobalVarDef.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp

IMPLEMENT_DYNCREATE(CLeftTreeDisp, CTreeView)

CLeftTreeDisp::CLeftTreeDisp()
{
}

CLeftTreeDisp::~CLeftTreeDisp()
{
}


BEGIN_MESSAGE_MAP(CLeftTreeDisp, CTreeView)
	//{{AFX_MSG_MAP(CLeftTreeDisp)
	ON_WM_LBUTTONDBLCLK()
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp drawing

void CLeftTreeDisp::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp diagnostics

#ifdef _DEBUG
void CLeftTreeDisp::AssertValid() const
{
	CTreeView::AssertValid();
}

void CLeftTreeDisp::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}

CMcdsDoc* CLeftTreeDisp::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMcdsDoc)));
	return (CMcdsDoc*)m_pDocument;
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp message handlers

void CLeftTreeDisp::OnInitialUpdate() //在file new时会调用该函数
{
	CTreeView::OnInitialUpdate();

	CTreeCtrl& thCtrl=GetTreeCtrl();

	thCtrl.DeleteAllItems();//保证在新创建文档时不会重复创建该tree
	//修改TreeCtrl的style
	DWORD newstyle=TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES ;
	thCtrl.ModifyStyle(NULL,newstyle);
	
	//添加显示内容
	MarkTreeItemNum[0]=thCtrl.InsertItem(_T(strTextInfo[0]),0,1);
		MarkTreeItemNum[1]=thCtrl.InsertItem(_T(strTextInfo[1]),0,1,MarkTreeItemNum[0],TVI_LAST);
		MarkTreeItemNum[2]=thCtrl.InsertItem(_T(strTextInfo[2]+nNumInfo[2]),0,1,MarkTreeItemNum[0],TVI_LAST);
		thCtrl.Expand(MarkTreeItemNum[0],TVE_EXPAND);
		MarkTreeItemNum[3]=thCtrl.InsertItem(_T(strTextInfo[3]),0,1,MarkTreeItemNum[0],TVI_LAST);
			MarkTreeItemNum[4]=thCtrl.InsertItem(_T(strTextInfo[4]),0,1,MarkTreeItemNum[3],TVI_LAST);
			MarkTreeItemNum[5]=thCtrl.InsertItem(_T(strTextInfo[5]),0,1,MarkTreeItemNum[3],TVI_LAST);
//			thCtrl.Expand(MarkTreeItemNum[3],TVE_EXPAND); //不展开屏蔽该语句

	MarkTreeItemNum[6]=thCtrl.InsertItem(_T(strTextInfo[6]),0,1);
		MarkTreeItemNum[7]=thCtrl.InsertItem(_T(strTextInfo[7]+nNumInfo[7]),0,1,MarkTreeItemNum[6],TVI_LAST);
		MarkTreeItemNum[8]=thCtrl.InsertItem(_T(strTextInfo[8]+nNumInfo[8]),0,1,MarkTreeItemNum[6],TVI_LAST);
		MarkTreeItemNum[9]=thCtrl.InsertItem(_T(strTextInfo[9]+nNumInfo[9]),0,1,MarkTreeItemNum[6],TVI_LAST);
		MarkTreeItemNum[10]=thCtrl.InsertItem(_T(strTextInfo[10]+nNumInfo[10]),0,1,MarkTreeItemNum[6],TVI_LAST);
		thCtrl.Expand(MarkTreeItemNum[6],TVE_EXPAND);

	MarkTreeItemNum[11]=thCtrl.InsertItem(_T(strTextInfo[11]),0,1);
		MarkTreeItemNum[12]=thCtrl.InsertItem(_T(strTextInfo[12]+nNumInfo[12]),0,1,MarkTreeItemNum[11],TVI_LAST);
		MarkTreeItemNum[13]=thCtrl.InsertItem(_T(strTextInfo[13]+nNumInfo[13]),0,1,MarkTreeItemNum[11],TVI_LAST);
		thCtrl.Expand(MarkTreeItemNum[11],TVE_EXPAND);
	MarkTreeItemNum[14]=thCtrl.InsertItem(_T(strTextInfo[14]),0,1);
		MarkTreeItemNum[15]=thCtrl.InsertItem(_T(strTextInfo[15]+nNumInfo[15]),0,1,MarkTreeItemNum[14],TVI_LAST);
		MarkTreeItemNum[16]=thCtrl.InsertItem(_T(strTextInfo[16]+nNumInfo[16]),0,1,MarkTreeItemNum[14],TVI_LAST);
		MarkTreeItemNum[17]=thCtrl.InsertItem(_T(strTextInfo[17]+nNumInfo[17]),0,1,MarkTreeItemNum[14],TVI_LAST);
		MarkTreeItemNum[18]=thCtrl.InsertItem(_T(strTextInfo[18]+nNumInfo[18]),0,1,MarkTreeItemNum[14],TVI_LAST);
		thCtrl.Expand(MarkTreeItemNum[14],TVE_EXPAND);
		
	MarkTreeItemNum[19]=thCtrl.InsertItem(_T(strTextInfo[19]),0,1);
		MarkTreeItemNum[20]=thCtrl.InsertItem(_T(strTextInfo[20]+nNumInfo[20]),0,1,MarkTreeItemNum[19],TVI_LAST);
		MarkTreeItemNum[21]=thCtrl.InsertItem(_T(strTextInfo[21]+nNumInfo[21]),0,1,MarkTreeItemNum[19],TVI_LAST);
		MarkTreeItemNum[22]=thCtrl.InsertItem(_T(strTextInfo[22]+nNumInfo[22]),0,1,MarkTreeItemNum[19],TVI_LAST);
//		MarkTreeItemNum[23]=thCtrl.InsertItem(_T(strTextInfo[23]+nNumInfo[23]),0,1,MarkTreeItemNum[19],TVI_LAST);
//		MarkTreeItemNum[24]=thCtrl.InsertItem(_T(strTextInfo[24]+nNumInfo[24]),0,1,MarkTreeItemNum[19],TVI_LAST);
//		MarkTreeItemNum[25]=thCtrl.InsertItem(_T(strTextInfo[25]+nNumInfo[25]),0,1,MarkTreeItemNum[19],TVI_LAST);
//		MarkTreeItemNum[26]=thCtrl.InsertItem(_T(strTextInfo[26]+nNumInfo[26]),0,1,MarkTreeItemNum[19],TVI_LAST);
		thCtrl.Expand(MarkTreeItemNum[19],TVE_EXPAND);
		
}

void CLeftTreeDisp::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	CTreeCtrl& thCtrl=GetTreeCtrl();

	for(int i=0;i<=22;i++)
	{
		if (lsUpdate[i]==true) 
		{
			if(i==2||i==7||i==9)cs.Lock();
			thCtrl.SetItemText(MarkTreeItemNum[i],strTextInfo[i]+nNumInfo[i]);
			lsUpdate[i]=false;
			if(i==2||i==7||i==9)cs.Unlock();
		}
	}
}

void CLeftTreeDisp::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CTreeView::OnLButtonDblClk(nFlags, point);
}

void CLeftTreeDisp::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	CTreeCtrl& thCtrl=GetTreeCtrl();
	HTREEITEM TreeItem=thCtrl.GetSelectedItem();
	int currentNum=TreeItemNum(TreeItem);

	if(currentNum==7
		||currentNum==9
		||currentNum==12
		||currentNum==20
		||currentNum==21)//这几项是可以更改的几项
	{
		nExNum=currentNum;//标志当前所操作的内容,传到对话框
		CTreeDlg TreeDlg;
		if(TreeDlg.DoModal()==IDOK)
		{
			lsUpdate[nExNum]=true;
			if(nExNum==20||nExNum==21)
			{
				char temp[15];
				_itoa(atoi(nNumInfo[21])-atoi(nNumInfo[20])+1,temp,10);
				nNumInfo[22]=temp;
				lsUpdate[22]=true;
			}
			
			if(nExNum==12)
			{
				char temp[15];
				_itoa(m_data[atoi(nNumInfo[12])],temp,10);
				nNumInfo[13]=temp;
				lsUpdate[13]=true;
			}
			GetDocument()->UpdateAllViews(NULL);
		};
	}
	*pResult = 0;
}

int CLeftTreeDisp::TreeItemNum(HTREEITEM TreeItem)
{
	for(int i=0;i<=22;i++)
	{
		if(TreeItem==MarkTreeItemNum[i])break;
	}
	if(i==23)return 0;
	else return i;
}

int CLeftTreeDisp::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CTreeView::OnCreate(lpCreateStruct) == -1)
		return -1;
	// TODO: Add your specialized creation code here
	return 0;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -