📄 paramlistctrl.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 + -