• 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
  • 相关阅读:
    三数之和
    罗马数字与整数
    Oracle 开启或关闭归档
    Oracle RMAN scripts to delete archivelog
    Oracle check TBS usage
    Oracle kill locked sessions
    场景9 深入RAC运行原理
    场景7 Data Guard
    场景4 Data Warehouse Management 数据仓库
    场景5 Performance Management
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4290631.html
Copyright © 2020-2023  润新知