麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(102)查看文件属性

在文章《VC++开发GIS系统(101)补充知识VC++获取文件信息(大小、时间)》中大体介绍了VC++中获取文件属性的简单方法,下面的工作就是响应文件右击的属性菜单,实现查看文件属性的功能。

效果图

实现步骤

1. 画一个文件属性的对话框

参考文章《VC++开发GIS系统(40)画一个输入点的对话框

这里要注意的是将控制Edit的属性设置为只读,这样用户就无法修改属性了,如下:

2. 导出对话框

参考文章《VC++开发GIS系统(45)导出输入点对话框并调用

实现代码如下:

函数定义

/*
* 文件属性对话框
*/
void maladialogsdll dlgGraphFilePro(malaTree fileNode);

函数实现

/*
* 文件属性对话框实现
*/
void maladialogsdll dlgGraphFilePro(malaTree fileNode)
{
    CDialogFilePro dlg;
    dlg.mFileName = fileNode.itemnode;
    dlg.mFilePath = fileNode.filePath;
    
    CFile file;
    CFileStatus fileStatus;
    file.GetStatus(fileNode.filePath, fileStatus);
    
    dlg.mFileSize.Format(L"%f KB", (float)fileStatus.m_size/1024.0);
    dlg.mCreateTime = fileStatus.m_ctime.Format(L"%Y-%m-%d %H:%M:%S");
    dlg.mModifyTime = fileStatus.m_mtime.Format(L"%Y-%m-%d %H:%M:%S");

    dlg.DoModal();
}

这里要传入的是一个节点malaTree fileNode,然后根据节点来获取文件信息。

3. 响应属性菜单

参考《VC++开发GIS系统(71)响应CTreeCtrl右键菜单的函数》响应“属性”菜单,如图:

代码如下:

//查看文件属性
void CPrjManage::OnGraphFilePro()
{
    //更新fileNodeTree
    CString str = m_wndPrjView.GetItemText(selTreeItem);
    for (size_t i = 0; i < fileNodeTree.size(); i++)
    {
        if (fileNodeTree[i].itemnode == str)
        {
            dlgGraphFilePro(fileNodeTree[i]);
        }
    }
    
}

详细代码可以参考:GitHub

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

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

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

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)