VC++开发GIS系统(271)删除注释之函数定义

本文介绍GIS系统中的删除注释的功能,并实现一个用于删除注释的底层IO函数。

删除注释IO函数定义

在_malaIO.h中的注释文件读写类 CLabelIO 中定义用于删除注释的函数,声明如下:

public:
  long labelDelete(malaLabelPro &labelPro, CString &fileName);//删除注释
  • @ labelPro 被删除注释的属性
  • @ fileName 注释文件的完整路径

删除注释IO函数实现

在_malaIO.cpp中实现上述的函数定义,代码如下:

//删除注释实现
long CLabelIO::labelDelete(malaLabelPro &labelPro, CString &fileName)
{
  long ID = labelPro.labelId;
  readLabels(fileName);

  vector<malaLabelFile>tempLabels;

  int Size = mLabel.size();
  for (int i = 0; i < Size; i++)
  {
    if (mLabel[i].mLabelPro.labelId != ID)
    {
      tempLabels.push_back(mLabel[i]);
    }
  }
  mLabel.clear();
  mLabel = tempLabels;
  saveLabels(fileName);
  tempLabels.clear();
  return ID;
}

实现原理是遍历注释文件中的所有注释,ID相同即删除。

详细代码可以参考:GitHub

VC++开发GIS系统(270)修改注释属性之菜单响应 VC++开发GIS系统(272)删除注释之类的设计及实现

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论