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

📄 leftview.cpp

📁 MDF监控源码2
💻 CPP
字号:
// LeftView.cpp : CLeftView 类的实现
//

#include "stdafx.h"
#include "MDF.h"

#include "serialdoc.h"
#include "LeftView.h"
#include ".\leftview.h"



#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CLeftView

IMPLEMENT_DYNCREATE(CLeftView, CTreeView)

extern CMDFApp theApp ;

BEGIN_MESSAGE_MAP(CLeftView, CTreeView)



	ON_NOTIFY_REFLECT(TVN_SELCHANGING, OnTvnSelchanging)
	ON_NOTIFY_REFLECT(NM_RCLICK, OnNMRclick)
	ON_COMMAND(ID_POP_PORTSTATE, OnPopPortstate)
	ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnTvnSelchanged)
END_MESSAGE_MAP()


// CLeftView 构造/析构

//##ModelId=465286A2034B
CLeftView::CLeftView()
{
	// TODO: 在此处添加构造代码

	m_pAdoDB = theApp.m_pAdoDB;
	
}

//##ModelId=465286A2035C
CLeftView::~CLeftView()
{
}

//##ModelId=465286A2034D
BOOL CLeftView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式

	return CTreeView::PreCreateWindow(cs);
}

//void CLeftView::OnInitialUpdate()
//{
//	CTreeView::OnInitialUpdate();
//
//	// TODO: 调用 GetTreeCtrl() 直接访问 TreeView 的树控件,
//	// 从而可以用项填充 TreeView。
//}


// CLeftView 诊断

#ifdef _DEBUG
//##ModelId=465286A2035E
void CLeftView::AssertValid() const
{
	CTreeView::AssertValid();
}

//##ModelId=465286A20360
void CLeftView::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}

//##ModelId=465286A2034C
CSerialDoc* CLeftView::GetDocument() // 非调试版本是内联的
{
	//ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSerialDoc)));
	return	NULL;	//(CSerialDoc*)CView::m_pDocument;
}
#endif //_DEBUG


// 初始化设备节点树

//##ModelId=465286A20371
int CLeftView::IniTreeNode(void)
{
	
	CString strTip,strSQL,strTable,strField ;		//系统提示信息
	CImageList imgList;
	_variant_t var;
	_RecordsetPtr pRsPtr ;

	//设置图片
	IniImageList();
	CTreeCtrl& m_wndTree = GetTreeCtrl();
	ASSERT(m_wndTree.GetImageList(TVSIL_NORMAL) == NULL);
	m_wndTree.SetImageList(&m_imgList,TVSIL_NORMAL);

	pRsPtr.CreateInstance(__uuidof(Recordset));
	strTable = "VW_Module" ; //监测模块类别表
	strSQL.Format("SELECT * FROM %s",strTable) ;

	if( m_pAdoDB->ReadDB(strSQL, pRsPtr,strTip) != 0 )//读监测模块类别表
	{
		return -1 ;//完全未能初始化
	}

	//**************读取设备类别***************

	TVINSERTSTRUCT tvInsert,tvItem;
	tvInsert.hParent = NULL;
	tvInsert.hInsertAfter = NULL;
	tvInsert.item.mask = TVIF_TEXT;
	CString sParent;


	//tvInsert.item.pszText = _T("图书馆");
	HTREEITEM hPA;
	while( !pRsPtr->adoEOF )
	{
		if( m_pAdoDB->GetRdData("SVMNote",pRsPtr,var,strTip) == 0 )
		{

			m_pAdoDB->GetStrVar(var,strField,strTip);
			if (sParent.Compare((LPCTSTR)strField) != 0  || sParent.GetLength() == 0)
			{
				tvInsert.item.iImage = 0; 
				tvInsert.item.pszText = strField.GetBuffer();
				sParent = strField;
				hPA= m_wndTree.InsertItem(&tvInsert);
			}
			tvItem.hParent =  hPA;
			tvItem.hInsertAfter =  NULL;
			tvItem.item.iImage = 1;
			tvItem.item.mask = TVIF_TEXT;
			m_pAdoDB->GetFieldValue(_T("SVMTrueName"),pRsPtr,strTip);
			tvItem.item.pszText =  strTip.GetBuffer();
			m_wndTree.InsertItem(&tvItem);

		}
		pRsPtr->MoveNext();

	}
	pRsPtr->Close();
	pRsPtr.Release();


	//HTREEITEM hPA = m_wndTree.InsertItem(TVIF_TEXT,_T("计算机类"), 0, 0, 0, 0, 0, hCountry, NULL);
	//HTREEITEM hWA = m_wndTree.InsertItem(_T("管理类"),0, 0, hCountry, hPA);
	//HTREEITEM hEA = m_wndTree.InsertItem(_T("电子类"),0, 0, hCountry, hWA);
	//
	//m_wndTree.InsertItem(_T("Windows 程序设计"), hPA, TVI_SORT);
	//m_wndTree.InsertItem(_T("vc++编程指南"), hPA, TVI_SORT);
	//m_wndTree.InsertItem(_T("JAVA"), hPA, TVI_SORT);
	//m_wndTree.InsertItem(_T("php 管理"), hWA, TVI_SORT);
	//m_wndTree.InsertItem(_T("Kalaloch"), hWA, TVI_SORT);
	//m_wndTree.InsertItem(_T("Yakima"), hWA, TVI_SORT);
	
	
	//m_imgList.Create(
	//this->UpdateWindow();
	

	return 0;
}

//##ModelId=465286A2037A
void CLeftView::OnInitialUpdate()
{
	CTreeView::OnInitialUpdate();
	IniTreeNode();
	// TODO: 在此添加专用代码和/或调用基类
}

//##ModelId=465286A2037C
BOOL CLeftView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
	// TODO: 在此添加专用代码和/或调用基类

	dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
	return CTreeView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}


// 初始化ImageList控件
//##ModelId=465286A203B9
int CLeftView::IniImageList(void)
{	
	
	m_imgList.Create(IDB_BITMAPTREE,18,ILC_COLOR24,RGB(0,0,0));
	return 0;

}

//##ModelId=465286A203BB
void CLeftView::OnTvnSelchanging(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}

// 根据文本得到节点
//##ModelId=465286A203C9
BOOL  CLeftView::GetNode(TVITEM &tmNode, CString sNodeText)
{
	CTreeCtrl& m_wndTree = GetTreeCtrl();
	TVITEM node;
	node.mask = TVIF_TEXT;
	node.pszText = sNodeText.GetBuffer();

	BOOL blResult = m_wndTree.GetItem(&node) ;
	if (blResult)
	{
		tmNode = node;
		return blResult;
	}	
	else
		return blResult;

}

//##ModelId=465286A203DA
void CLeftView::OnNMRclick(NMHDR *pNMHDR, LRESULT *pResult)
{
	
		CMenu menu; 
		menu.LoadMenu(IDR_MNUCONTROL); 
		CPoint point; 
		GetCursorPos(&point); 
		// 显示图标菜单 
		menu.GetSubMenu(0)->TrackPopupMenu( 
			TPM_LEFTBUTTON|TPM_RIGHTBUTTON,  
			point.x, point.y, this, NULL);

	*pResult = 0;
}

//##ModelId=465286A30001
void CLeftView::OnPopPortstate()
{
	
	//if ()
	// TODO: 在此添加命令处理程序代码
}

//##ModelId=465286A30003
void CLeftView::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	//CTreeCtrl p_tree = this->GetTreeCtrl();
	


	*pResult = 0;
}

⌨️ 快捷键说明

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