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

📄 treectrlex.cpp

📁 一个很好的LFP规约调试器
💻 CPP
字号:
// TreeCtrlEx.cpp : implementation file
//

#include "stdafx.h"
#include "TreeCtrlEx.h"
#include "TestLFPProtocol.h"
#include "LfpYk.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTreeCtrlEx

CTreeCtrlEx::CTreeCtrlEx()
{
	dev_addr = 0;
	memset( &dev_type, '\0', sizeof( dev_type ) );
}

CTreeCtrlEx::~CTreeCtrlEx()
{
}


BEGIN_MESSAGE_MAP(CTreeCtrlEx, CTreeCtrl)
	//{{AFX_MSG_MAP(CTreeCtrlEx)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(IDC_CTRL_YK_SEL, OnCtrlYkSel)
	ON_COMMAND(IDC_CTRL_SETTING_VALUE, OnCtrlSettingValue)
	ON_COMMAND(IDC_CTRL_POLL, OnCtrlPoll)
	ON_COMMAND(IDC_CTRL_SET_TIME, OnCtrlSetTime)
	ON_COMMAND(IDC_CTRL_RESET, OnCtrlReset)
	//}}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);
	CString	str;
	CMenu PopMenu;
	CMenu *pMenu; 
	CPoint pt;
	pt = point;
	HTREEITEM htHit = HitTest( point );
	SelectItem( htHit );
	str = GetItemText( htHit );
	if( str != "" ) {
		CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
		CString	temp;
		if( str.Find( "-" ) >= 0 ) {
			temp = str.Left( str.Find( "-" ) );
			dev_addr = (BYTE)atoi( temp.GetBuffer( 0 ) );
			temp = str.Mid( str.Find( "-" )+2 );
			strcpy( dev_type, temp.GetBuffer( 0 ) );
			strcat( dev_type, ".Def" );
		}
		PopMenu.LoadMenu( IDR_MENU_POPUP );
		ClientToScreen ( &pt );
		pMenu = PopMenu.GetSubMenu( 0 );
		pMenu->TrackPopupMenu( TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, this );
	}
}

void CTreeCtrlEx::OnCtrlYkSel() 
{
	// TODO: Add your command handler code here
	CLfpYk	dlg;
	if( strcmp( dev_type, "" ) == 0 ) return;
	dlg.yktype = YK_SELECT;
	if( dlg.DoModal() == IDOK ) {
		CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
		pApp->m_pMainView->m_bPoll = TRUE;
		pApp->m_pMainView->nYkState = YK_SELECT;
		pApp->m_pMainView->dev_addr = dev_addr;
		pApp->m_pMainView->dev_ctrl.dev_ctrl_yknum = dlg.m_yknum;
		pApp->m_pMainView->dev_ctrl.dev_ctrl_yktype = dlg.m_bykcmd;
		pApp->m_pMainView->dev_ctrl.dev_ctrl_yk = TRUE;
	}
}

void CTreeCtrlEx::OnCtrlSettingValue() 
{
	// TODO: Add your command handler code here
	CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
	if( strcmp( dev_type, "" ) == 0 ) return;
	pApp->m_pMainView->m_bPoll = TRUE;
	pApp->m_pMainView->dev_addr = dev_addr;
	pApp->m_pMainView->dev_ctrl.dev_call_settings = TRUE;
	pApp->m_pMainFrame->CreateSettingValueView( dev_type );
}

void CTreeCtrlEx::OnCtrlPoll() 
{
	// TODO: Add your command handler code here
	CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
	if( strcmp( dev_type, "" ) == 0 ) return;
	pApp->m_pMainView->m_bPoll = TRUE;
	pApp->m_pMainView->dev_addr = dev_addr;
	pApp->m_pMainFrame->CreateListView( dev_type );
}

void CTreeCtrlEx::OnCtrlSetTime() 
{
	// TODO: Add your command handler code here
	CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
	if( strcmp( dev_type, "" ) == 0 ) return;
	pApp->m_pMainView->m_bPoll = TRUE;
	pApp->m_pMainView->dev_ctrl.dev_set_time = TRUE;
}

void CTreeCtrlEx::OnCtrlReset() 
{
	// TODO: Add your command handler code here
	CTestLFPProtocolApp* pApp = ( CTestLFPProtocolApp* )AfxGetApp();
	if( strcmp( dev_type, "" ) == 0 ) return;
	pApp->m_pMainView->m_bPoll = TRUE;
	pApp->m_pMainView->dev_ctrl.dev_ctrl_reset = TRUE;
}

⌨️ 快捷键说明

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