麻辣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。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣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,扫描右边二维码直接关注。

发表评论