1.VC弹出打开文件/保存文件/选择文件对话框

1.打开文件/保存文件 对话框:

CFileDialog::CFileDialog(
        BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框
        LPCTSTR lpszDefExt = NULL, //默认的文件扩展名
        LPCTSTR lpszFileName = NULL, //默认的文件名
        DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格
        LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名
        CWnd* pParentWnd = NULL //父窗口句柄指针
);

1>打开文件对话框

tatic TCHAR szFilter[] =
    _T("Info Files (*.csv)|*.csv|")
    _T("Info Files (*.txt)|*.txt|")
    _T("Info Files (*.csv;*.txt)|*.csv;*.txt|");

CFileDialog hFileDlg(TRUE,NULL,NULL,
OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,
szFilter,
NULL);
if(hFileDlg.DoModal() == IDOK)
{
    m_path = hFileDlg.GetPathName();
    UpdateData(FALSE);
}

LPCTSTR lpszFilter 参数格式如:

"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";

文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

 

创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择: 
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt 
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt

 

GetPathName(); //获取单个文件路径

//多个文件获取

POSITION pos = dlg.GetStartPosition();

while(pos != NULL)

{

  m_path = dlg.GetNextPathName(pos);

}

 

2>保存文件对话框

把第一个参数设置为FALSE即可,其他与1>类似。

 

3>选择文件夹对话框

 CString strPath;

    TCHAR szDir[MAX_PATH];
    BROWSEINFO bi;    
    bi.hwndOwner = this->m_hWnd;
    bi.pidlRoot = NULL;
    bi.pszDisplayName = szDir; // 此参数如为NULL则不能显示对话框
    bi.lpszTitle = _T("请选择目录");
    bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS;
    bi.lpfn = NULL;
    bi.lParam = 0;
    bi.iImage = 0;

    ITEMIDLIST *pidl = SHBrowseForFolder(&bi); // 调用显示选择对话框
    if(pidl == NULL)
    {
        return;
    }
    // 取得文件夹路径到Buffer里
    if(!SHGetPathFromIDList(pidl,szDir))
    {
        return;
    }
    else
    {
        strPath = szDir; // 保存为CString
    }

 

转载于:https://www.cnblogs.com/SylarLiang-VC/p/5504286.html

  • 0
    点赞
  • 2
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值