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

📄 paramlistctrl.cpp

📁 从各种控件中获得数据 自动生成XML文档 并通过XSLT转换为其他形式的XML文档
💻 CPP
字号:
// ParamListCtrl.cpp : 实现文件
//
// Copyright by Johnson zhou. All right reserved.
// You can copy , modify and use as any purpose. I 'd like to see my name in 
// your credit.

#include "stdafx.h"
#include "GetItem.h"
#include "paramtable.h"
#include "xmlParamResult.h"
#include "ParamListCtrl.h"


// CParamListCtrl

IMPLEMENT_DYNAMIC(CParamListCtrl, CListCtrl)
CParamListCtrl::CParamListCtrl()
{
}

CParamListCtrl::~CParamListCtrl()
{
}


BEGIN_MESSAGE_MAP(CParamListCtrl, CListCtrl)
END_MESSAGE_MAP()



// CParamListCtrl 消息处理程序


bool CParamListCtrl::InitHeader(void)
{
	InsertColumn (0,_T("参数类型"),LVCFMT_LEFT,100);
	InsertColumn (1,_T("名称"),LVCFMT_LEFT,100);
	InsertColumn (2,_T("XML标签"),LVCFMT_LEFT,100);
	return false;
}

bool CParamListCtrl::InsertItemToCtrl(CParamItem & item)
{
	long n = GetItemCount ();
	InsertItem(n,item.m_strType);
	SetItemText(n,1,item.m_strName );
	SetItemText(n,2,item.m_strTag );
	SetItemData(n,(DWORD)item.m_lCode );
	return true;

}

bool CParamListCtrl::GetCurSelItem(CParamItem& item)
{
		long index = GetCurSelItem();
		if (index <0 )
			return false;
		long data = (long)GetItemData(index);
		long index_table = m_ParamTable.Find( data);
		item = m_ParamTable[index_table];
		return true;
}

bool CParamListCtrl::ModifyItemInCtrl(CParamItem& item)
{

	long index = GetCurSelItem();
	if ( index < 0 )
		return false;
	SetItemText(index,0,item.m_strType );
	SetItemText(index,1,item.m_strName );
	SetItemText(index,2,item.m_strTag );
	
	return true;
}

long CParamListCtrl::GetCurSelItem(void)
{
	POSITION pos = this->GetFirstSelectedItemPosition ();
	if ( pos )
	{
		return  this->GetNextSelectedItem (pos);
	}
	return -1;
}

bool CParamListCtrl::DelCurSelFromCtrl(void)
{
	long index = GetCurSelItem();
	if ( index == -1 )
		return false;
	if( DeleteItem (index))
		return true;
	return false;
}

bool CParamListCtrl::AddParam(CParamItem& item)
{
	if (m_ParamTable .FindDup (item.m_strName ,item.m_strTag ))
		return false;
	m_ParamTable.AddItem (item);
	return InsertItemToCtrl(item);

}

bool CParamListCtrl::DeleteParam(void)
{
	CParamItem item;
	if(!GetCurSelItem (item))
		return false;
	long index = m_ParamTable.Find(item.m_lCode );
	if (index < 0 )
		return false;
	m_ParamTable.DeleteItem(index);
	return DelCurSelFromCtrl ();
}

bool CParamListCtrl::ModifyParam(CParamItem& item)
{
	CParamItem olditem;
	if(!GetCurSelItem (olditem))
		return false;
	item.m_lCode = olditem.m_lCode ;
	long index = m_ParamTable.Find(item.m_lCode );
	if (index < 0 )
		return false;
	m_ParamTable.ModifyItem(index,item);
	return ModifyItemInCtrl (item);
}

bool CParamListCtrl::FillCtrlItem(void)
{
	long num = this->m_ParamTable .GetItemCount();
	for ( long i = 0 ; i < num ; i ++ )
	{
		if (!InsertItemToCtrl ( m_ParamTable[i]))
			return false;
	}
	return true;
}

bool CParamListCtrl::Init(const CString & m_strPathName)
{
	this->SetExtendedStyle (LVS_EX_FULLROWSELECT );
	if(!InitHeader())
		return false;
	if ( m_strPathName.IsEmpty ())
		return true;
	if (!m_ParamTable .InitFromFile(m_strPathName))
        return false;
	return FillCtrlItem ();

}

bool CParamListCtrl::Clear(void)
{
	m_ParamTable.Clear();
	DeleteAllItems ();

	return true;
}

bool CParamListCtrl::GetParameter(CXMLParamResult& rst)
{
	if(m_ParamTable.WriteToResult ((CXMLResult&)rst))
		return true;
	return false;

}

⌨️ 快捷键说明

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