MFC_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 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
 
_T("Image Files(*.jpg;*.png;*.bmp)|*.jpg;*.png;*.bmp|All Files (*.*)|*.*||")


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

代码

void CMFCClistDlg::GUI_Add_Check_Dir()
{
    CFileDialog dlg(TRUE, _T("*.txt"),
        NULL, 
        OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,
        _T("conf Files(*.ini;*.txt)|*.ini;*.txt|All Files (*.*)|*.*||"),
        NULL);
    dlg.m_ofn.lpstrTitle = _T("选择字典");
    CString filename;
    vector<CString> vecFilePaths;
    if (dlg.DoModal() == IDOK)
    {
        POSITION fileNamesPosition = dlg.GetStartPosition();
        while (fileNamesPosition != NULL)
        {


            // filename 是获取得文件名
            filename = dlg.GetNextPathName(fileNamesPosition);
            vecFilePaths.push_back(filename);
        }
    }
    // 计算文件路径是否为空,如果为空就是没有选择文件
    int count = vecFilePaths.size();
    if (count == 0)
        MessageBox(_T("没有选择文件"), NULL, MB_OK | MB_ICONQUESTION);



    // 把变量内容更新到对话框
    UpdateData(FALSE);
}

参考

MFC 中CFileDialog的用法

https://blog.csdn.net/liuwumiyuhuiping/article/details/7348591

转载于:https://www.cnblogs.com/17bdw/p/10275932.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值