麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(104)载入文件之功能实现

前文《VC++开发GIS系统(103)载入文件之对话框的导出》已经导出了载入文件的交互对话框,下面的工作就是要实现载入文件的详细功能了。步骤如下:

1. 响应载入文件菜单

参考文章《VC++开发GIS系统(71)响应CTreeCtrl右键菜单的函数》的方法,实现载入文件函数的响应。

2. 实现载入文件

代码如下

//载入文件
void CPrjManage::OnGraphFileOpen()
{
    //先判断有没打开工程
    if (mBasePath != L"")
    {
        malaTree tmpTree;
        if (dlgLoadGraphFile(tmpTree))
        {
            if (checkTree(tmpTree))
            {
                fileNodeTree.push_back(tmpTree);
                int imgindex = 0;
                if (tmpTree.fileType == L"mpt")
                    imgindex = 2;
                if (tmpTree.fileType == L"mle")
                    imgindex = 5;
                if (tmpTree.fileType == L"mpn")
                    imgindex = 8;
                if (tmpTree.fileType == L"mll")
                    imgindex = 11;
                if (currentPrj.writeAllNode(fileNodeTree))
                    m_wndPrjView.InsertItem(tmpTree.itemnode, imgindex, imgindex, m_wndPrjView.GetRootItem());
            }
        }
    }
    else
        MessageBox(L"当前没有工程文件,请先新建工程或者打开已有工程", L"提示", MB_ICONWARNING);

    //...ondraw
    pjOnDraw();
}

这里用到了一个checkTree函数,实现如下:

//检查目录树中是否存在同名节点
bool CPrjManage::checkTree(malaTree &tree)
{
    for (size_t i = 0; i < fileNodeTree.size(); i++)
    {
        if (fileNodeTree[i].filePath == tree.filePath)
        {
            return false;
        }
    }
    return true;
}

这个函数主要作用是检查当前目录树中是否已经存在同名文件。

详细代码可以参考:GitHub

麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论