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

📄 treectrlex.cpp

📁 用VC写的监控中心后台程序。 代码全
💻 CPP
字号:
// TreeCtrlEx.cpp : implementation file
//

#include "stdafx.h"
#include "GpsSC.h"
#include "TreeCtrlEx.h"
#include "MonitorDlg.h"
#include "ClientinfoSet.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTreeCtrlEx
CTreeCtrlEx::CTreeCtrlEx()
{
	m_PopMenu.LoadMenu(IDR_POP_MENU);

	m_strCarPhone.Empty();			//车载电话
	m_strPassWord.Empty();
	m_hTreeItem	= NULL;
}

CTreeCtrlEx::~CTreeCtrlEx()
{
	m_hTreeItem	= NULL;
}


BEGIN_MESSAGE_MAP(CTreeCtrlEx, CTreeCtrl)
	//{{AFX_MSG_MAP(CTreeCtrlEx)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_POP_AUTOMONITOR, OnPopAutomonitor)
	ON_COMMAND(ID_POP_GETHELP, OnPopGethelp)
	ON_COMMAND(ID_POP_GETVEHICLEPOSITION, OnPopGetvehicleposition)
	ON_COMMAND(ID_POP_OPENLOCK, OnPopOpenlock)
	ON_COMMAND(ID_POP_SENDINFOTOGROUP, OnPopSendinfotogroup)
	ON_COMMAND(ID_POP_SENDNORMALSM, OnPopSendnormalsm)
	ON_COMMAND(ID_POP_SETLOCK, OnPopSetlock)
	ON_COMMAND(ID_POP_SHUTOIL, OnPopShutoil)
	ON_UPDATE_COMMAND_UI(ID_POP_SHUTOIL, OnUpdatePopShutoil)
	ON_UPDATE_COMMAND_UI(ID_POP_SETLOCK, OnUpdatePopSetlock)
	ON_UPDATE_COMMAND_UI(ID_POP_SENDNORMALSM, OnUpdatePopSendnormalsm)
	ON_UPDATE_COMMAND_UI(ID_POP_SENDINFOTOGROUP, OnUpdatePopSendinfotogroup)
	ON_UPDATE_COMMAND_UI(ID_POP_OPENLOCK, OnUpdatePopOpenlock)
	ON_UPDATE_COMMAND_UI(ID_POP_GETVEHICLEPOSITION, OnUpdatePopGetvehicleposition)
	ON_UPDATE_COMMAND_UI(ID_POP_GETHELP, OnUpdatePopGethelp)
	ON_UPDATE_COMMAND_UI(ID_POP_AUTOMONITOR, OnUpdatePopAutomonitor)
	ON_WM_LBUTTONDOWN()
	ON_COMMAND(ID_POP_CANCELAUTOMONITOR, OnPopCancelautomonitor)
	ON_UPDATE_COMMAND_UI(ID_POP_CANCELAUTOMONITOR, OnUpdatePopCancelautomonitor)
	ON_COMMAND(ID_POP_SET_CURR_MONITOR_CAR, OnPopSetCurrMonitorCar)
	ON_UPDATE_COMMAND_UI(ID_POP_SET_CURR_MONITOR_CAR, OnUpdatePopSetCurrMonitorCar)
	ON_COMMAND(ID_POP_CANCEL_CURR_MONITOR_CAR, OnPopCancelCurrMonitorCar)
	ON_UPDATE_COMMAND_UI(ID_POP_CANCEL_CURR_MONITOR_CAR, OnUpdatePopCancelCurrMonitorCar)
	ON_WM_INITMENUPOPUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTreeCtrlEx message handlers

void CTreeCtrlEx::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default

	CTreeCtrl::OnRButtonDown(nFlags, point);

	CRect		lpRect;

	HTREEITEM	m_hCurrTree;
	m_hCurrTree = HitTest(point);

	if(m_hCurrTree == NULL)	{
		return;
	}
	m_hTreeItem	= m_hCurrTree;
	m_strGetItemText=GetItemText(m_hCurrTree);
	m_hCurrTree=NULL;
	if(m_strGetItemText.Find("监控")!=-1)
		m_strGetItemText=m_strGetItemText.Left(m_strGetItemText.GetLength()-10);

	GetWindowRect(&lpRect);

	m_pMenu	= m_PopMenu.GetSubMenu(0);
	m_pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
							point.x + lpRect.left,
							point.y + lpRect.top, this,NULL);
}


bool CTreeCtrlEx::Init(CProcSM *pProcSM)
{
	if(pProcSM == NULL)	return false;
	m_pProcSM = pProcSM;

	return true;
}


void CTreeCtrlEx::OnPopAutomonitor() 
{
	// TODO: Add your command handler code here
	m_pProcSM->AutoMonitor(m_strGetItemText);
}

void CTreeCtrlEx::OnUpdatePopAutomonitor(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopGethelp() 
{
	// TODO: Add your command handler code here
	m_pProcSM->GetHelp();
}

void CTreeCtrlEx::OnUpdatePopGethelp(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopGetvehicleposition() 
{
	// TODO: Add your command handler code here
	m_pProcSM->OnGetvehicleposition(m_strGetItemText);
}

void CTreeCtrlEx::OnUpdatePopGetvehicleposition(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopOpenlock() 
{
	// TODO: Add your command handler code here
	m_pProcSM->OnOpenlock(m_strGetItemText);

}

void CTreeCtrlEx::OnUpdatePopOpenlock(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopSendinfotogroup() 
{
	// TODO: Add your command handler code here
	AfxMessageBox("对不起! 此功能只提供给正式用户!");
}

void CTreeCtrlEx::OnUpdatePopSendinfotogroup(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopSendnormalsm() 
{
	// TODO: Add your command handler code here
	AfxMessageBox("对不起! 此功能只提供给正式版用户!");
}

void CTreeCtrlEx::OnUpdatePopSendnormalsm(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopSetlock() 
{
	// TODO: Add your command handler code here
	m_pProcSM->OnSetlock(m_strGetItemText);
}

void CTreeCtrlEx::OnUpdatePopSetlock(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnPopShutoil() 
{
	// TODO: Add your command handler code here
	m_pProcSM->OnShutoil(m_strGetItemText);
}

void CTreeCtrlEx::OnUpdatePopShutoil(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_pProcSM->m_bSysTemInit);
}

void CTreeCtrlEx::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CTreeCtrl::OnLButtonDown(nFlags, point);

	HTREEITEM	m_hCurrTree;
	m_hCurrTree = HitTest(point);
	if(m_hCurrTree == NULL)	{
		return;
	}

	str_GetTreeItemText = GetItemText(m_hCurrTree);

	m_hCurrTree = NULL;
}

bool CTreeCtrlEx::GetCarPhoneAndPassword()
{
	CClientinfoSet	cSet;

	if(!str_GetTreeItemText.IsEmpty()) {
		cSet.FindCarPswAndNO(str_GetTreeItemText,m_strCarPhone,m_strPassWord);
		return true;
	}

	return false;
}

void CTreeCtrlEx::OnPopCancelautomonitor() 
{
	// TODO: Add your command handler code here
	m_pProcSM->CanceLautoMonitor(m_strGetItemText);

	if(m_pProcSM->CheckMonitorCar())
	{
		CMainFrame*  mainfrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
		bool	bControl	= false;
		mainfrm->EditTreeItem(m_hTreeItem,bControl);
	}
}

void CTreeCtrlEx::OnUpdatePopCancelautomonitor(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL		MenuEnable = m_pProcSM->m_bSysTemInit;

	pCmdUI->Enable(MenuEnable);
}

void CTreeCtrlEx::OnPopSetCurrMonitorCar()
{
	// TODO: Add your command handler code here
	CClientinfoSet	cSet;
	CString			VehicleID,VehicleTel;

	CMainFrame*  mainfrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	cSet.FindCarNumberAndPhone(m_strGetItemText,VehicleID,VehicleTel);
	m_pProcSM->SetMonitorCar(VehicleID);

	if(!m_pProcSM->CheckMonitorCar())
	{
		mainfrm->EditTreeItem(m_hTreeItem);
	}
}

void CTreeCtrlEx::OnUpdatePopSetCurrMonitorCar(CCmdUI* pCmdUI)
{
	// TODO: Add your command update UI handler code here
	BOOL		MenuEnable = m_pProcSM->m_bSysTemInit;
	pCmdUI->Enable(MenuEnable);
}

void CTreeCtrlEx::OnPopCancelCurrMonitorCar() 
{
	// TODO: Add your command handler code here
	if(m_pProcSM->CheckMonitorCar())
	{
		CMainFrame*  mainfrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
		bool	bControl	= false;
		mainfrm->EditTreeItem(m_hTreeItem,bControl);
	}
}

void CTreeCtrlEx::OnUpdatePopCancelCurrMonitorCar(CCmdUI* pCmdUI)
{
	// TODO: Add your command update UI handler code here
	BOOL		MenuEnable = m_pProcSM->m_bSysTemInit;
	pCmdUI->Enable(MenuEnable);
}

void CTreeCtrlEx::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) 
{
	CTreeCtrl::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
	
	// TODO: Add your message handler code here
	BOOL		MenuEnable = m_pProcSM->m_bSysTemInit;
	CMainFrame *pFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
	if(!bSysMenu)
	{
		if (MenuEnable)
		{
			pPopupMenu->EnableMenuItem(0, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(1, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(2, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(3, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(4, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(5, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(6, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(7, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(8, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(6, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(10, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(11, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(12, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(13, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(14, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(15, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(16, MF_BYPOSITION | MF_ENABLED);
			pPopupMenu->EnableMenuItem(17, MF_BYPOSITION | MF_ENABLED);
		}
		else
		{
			pPopupMenu->EnableMenuItem(0, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(1, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(2, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(3, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(4, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(5, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(6, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(7, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(8, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(6, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(10, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(11, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(12, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(13, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(14, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(15, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(16, MF_BYPOSITION | MF_GRAYED);
			pPopupMenu->EnableMenuItem(17, MF_BYPOSITION | MF_GRAYED);
		}
	}
}

⌨️ 快捷键说明

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