void CPMAgentManageDlg::OnButtonDelete()
{
// TODO: Add your control notification handler code here
int nGetId;
while(m_matrixInfoList.GetSelectedCount() > 0)
{
POSITION pos = m_matrixInfoList.GetFirstSelectedItemPosition();
if(pos != NULL)
{
int nItem = m_matrixInfoList.GetNextSelectedItem(pos);
CString str;
//获取删除矩阵的id号
str=m_matrixInfoList.GetItemText(nItem,0);
nGetId=atoi(str);
m_matrixInfoList.DeleteItem(nItem);
TiXmlDocument *myDocument = new TiXmlDocument(g_sFilefullPath.c_str());
myDocument->LoadFile();
TiXmlNode *RootElement = myDocument->RootElement();
TiXmlNode *root=myDocument->FirstChild("matrixs");
TiXmlNode *pChild=root->FirstChild("matrixnum");
//用到search函数时
for ( pChild=root->FirstChild("matrixnum"); pChild != 0;)
{
if(FALSE==Search(pChild,nGetId,root))
pChild = pChild->NextSibling("matrixnum");
}
myDocument->SaveFile(g_sFilefullPath.c_str());
}
}
}
//查询函数,根据结点查找(遍历)
BOOL CPMAgentManageDlg::Search(TiXmlNode *&pChild,int nGetId,TiXmlNode *root)
{
TiXmlElement *child=pChild->FirstChildElement("matrix");
int idAttribute=(int)atoi(child->Attribute("id"));
if (idAttribute==nGetId)
{
TiXmlNode *temp=pChild->NextSibling("matrixnum");
root->RemoveChild(pChild); //删除
pChild=temp; //删除后把下一个往上挪
return TRUE;
}
return FALSE;
}