VC用对话框打开文件

void CMainFrame::OnFileImport()
{
    CString filter_str = "Picture files (*.jpg)|*.jpg|Picture files (*.gif)|*.gif|BMP files (*.bmp)|*.bmp|All Files (*.*)|*.*||"; 
    CFileDialog dlg(TRUE, "", "",  OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT, filter_str, this);
    TCHAR pszBuf[2048];
    memset(pszBuf, 0, sizeof(pszBuf));
    dlg.m_ofn.nMaxFile = 2048;
    dlg.m_ofn.lpstrFile = pszBuf;
    if (IDOK == dlg.DoModal())
    {
        CString strFilePath = dlg.GetPathName();
        CString strDir = strFilePath;
        if ( !PathIsDirectory(strFilePath) )
        {
            int nIndex = strFilePath.ReverseFind(_T('\\'));
            strDir = strFilePath.Left(nIndex);
        }
        if ( m_strCurrentDirPath.GetLength() == strDir.GetLength() && m_strCurrentDirPath == strDir )
        {
            CConfig::GetConfig()->HYWMessageBox(m_hWnd, "相同的文件夹不能导入!", MSGTITLE, MB_OK | MB_ICONINFORMATION);
            return;
        }
        POSITION nPos = dlg.GetStartPosition();
        CMediator *pMediator = CMediator::GetMediatorPtr();
        while (nPos != NULL)
        {
            strFilePath = dlg.GetNextPathName(nPos);
            int nIndex = strFilePath.ReverseFind(_T('\\'));
            CString strFileName = strFilePath.Right(strFilePath.GetLength() - nIndex);
            strFileName.Replace(_T("%"), _T(""));
            CString strNewFilePath = m_strCurrentDirPath + strFileName;
            CConfig::GetConfig()->GetUniqueFilePath(strNewFilePath);
            if ( CopyFile(strFilePath, strNewFilePath, TRUE) )
            {
                pMediator->AddImage(strNewFilePath);
            }
        }
        //pMediator->Invalidate();
        ::SendMessage( m_wndSplitter.GetPane(0, 1)->m_hWnd, WM_USER_SETSTATUS, (WPARAM)2, NULL);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值