zoukankan      html  css  js  c++  java
  • CFileDialog的用法简介

    CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: 
    CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );参数意义如下: 

    bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。 
    lpszDefExt 指定默认的文件扩展名。 
    lpszFileName 指定默认的文件名。 
    dwFlags 指明一些特定风格。 
    lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如: 
    "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。 
    pParentWnd 为父窗口指针。
    CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt 
    CString CFileDialog::GetFileName( ) 得到完整的文件名,如:test1
    CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt 
    CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,包括目录名和扩展名如:test1.txt 
    POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。 
    CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。
    VC++ CFileDialog 读取多个文件
    CFileDialog dlg(TRUE, 
        "DEM Files (*DEM)", 
        NULL, 
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,
        _T("Layer Files (*.DEM;*.TIFF;*.BMP;*.JPG)|*.DEM;*.TIFF;*.BMP;*.JPG;)||"),
        NULL);
    dlg.m_ofn.lpstrTitle="请加载相关图层";
    //最多可以打开100个文件
    dlg.m_ofn.nMaxFile = 100 * MAX_PATH; 
    dlg.m_ofn.lpstrFile = new TCHAR[dlg.m_ofn.nMaxFile];  
    ZeroMemory(dlg.m_ofn.lpstrFile, sizeof(TCHAR) * dlg.m_ofn.nMaxFile); 

    //显示文件对话框,获得文件名集合
    int retval = dlg.DoModal();
    if(retval==IDCANCEL)
    return false;
    POSITION pos_file;
    pos_file = dlg.GetStartPosition();
    CArray<CString, CString> ary_filename;
        while(pos_file != NULL)
    ary_filename.Add(dlg.GetNextPathName(pos_file));

    //根据扩展名读取相关文件
    for(int i=0; i<ary_filename.GetSize(); i++)
    {
    CString str_ext;
    str_ext = ary_filename.GetAt(i).Right(3);
    if((str_ext == "DEM")||(str_ext == "dem"))
    {
    }
    else if((str_ext == "TIFF")||(str_ext == "tiff"))
    {
    }
    else if((str_ext == "BMP")||(str_ext == "bmp"))
    {
    }
    else if((str_ext == "JPG")||(str_ext == "jpg"))
    {
    }
    else if((str_ext == "SHP")||(str_ext == "shp"))
    {
    }

    return true
  • 相关阅读:
    使用ngx_lua构建高并发应用(1)
    nginx+lua项目学习
    学习乱
    if---(switch-case)语句初步学习总结
    数据类型转换
    总结:C#变量,占位符等相关知识
    学习随笔
    开始我的.NET的学习旅程
    Python 网络爬虫 008 (编程) 通过ID索引号遍历目标网页里链接的所有网页
    Python 网络爬虫 007 (编程) 通过网站地图爬取目标站点的所有网页
  • 原文地址:https://www.cnblogs.com/mfryf/p/3106576.html
Copyright © 2011-2022 走看看