MFC打开文件选择框和多选框,保存文件夹的选择,保存文件路径的选择

CString defaultDir = "C:\\";   //默认打开的文件路径  
	CString fileName = "";         //默认打开的文件名  
	CString filter = "文件 (*.pdf)|*.pdf||";   //文件过虑的类型  
	CFileDialog openFileDlg(TRUE, defaultDir, fileName, OFN_HIDEREADONLY, filter, NULL);
	//openFileDlg.GetOFN().lpstrInitialDir = "E:\\FileTest\\test.doc";
	INT_PTR result = openFileDlg.DoModal();
	CString filePath;
	if (result == IDOK) {
		filePath = openFileDlg.GetPathName();
		m_fileList.clear();
		Pdf2Png *pdf = new Pdf2Png();
		m_fileList = pdf->runPdfToPng(filePath.GetBuffer());
		
		for (int i = 0; i < (int)m_fileList.size(); i++)
		{
			_cprintf("%s\n", m_fileList[i]);
		}
		delete pdf;
		const int len = 100;
		sciter::value arr[len];
		for (int i = 0; i < (int)m_fileList.size(); i++)
		{
			arr[i] = sciter::value(m_fileList[i].GetBuffer());
		}
		return sciter::value(arr, m_fileList.size());
	}

  

CString defaultDir = "C:\\";   //默认打开的文件路径  
	CString fileName = "";         //默认打开的文件名  
	CString filter = "文件 (*.jpg; *.jpeg; *.png; *.bmp)|*.jpg;*.jpeg;*.png;*.bmp||";   //文件过虑的类型  
	CFileDialog openFileDlg(TRUE, defaultDir, fileName, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, filter, NULL);
	//openFileDlg.GetOFN().lpstrInitialDir = "E:\\FileTest\\test.doc";
	INT_PTR result = openFileDlg.DoModal();
	CString filePath;
	if (result == IDOK) {
		//filePath = openFileDlg.GetPathName();
		POSITION pos = openFileDlg.GetStartPosition();
		while (pos != NULL)
		{
			filePath = openFileDlg.GetNextPathName(pos);
		}
	}

  保存文件路径选择

TCHAR szDir[MAX_PATH];
	BROWSEINFO bi;
	ITEMIDLIST *pidl;
	bi.hwndOwner = this->m_hWnd;
	bi.pidlRoot = NULL;
	bi.pszDisplayName = szDir;//这个是输出缓冲区   
	bi.lpszTitle = _T("选择输出文件夹:"); //标题  
	bi.ulFlags = BIF_NEWDIALOGSTYLE;//使用新的界面,在win7中效果较好//BIF_RETURNONLYFSDIRS;   
	bi.lpfn = NULL;
	bi.lParam = 0;
	bi.iImage = 0;
	pidl = SHBrowseForFolder(&bi);//弹出对话框   
	if (pidl == NULL)//点了取消,或者选择了无效的文件夹则返回NULL  
		return sciter::value("false");

	if (SHGetPathFromIDList(pidl, szDir))
	{
		savePathDir = szDir;
		m_root = this->get_root();
		sciter::thread(thread_saveImageAndText, cutSaveInfo);
	}

  

CFileDialog dlg(FALSE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
	if (dlg.DoModal() == IDOK)
	{
		savePathDir = dlg.GetPathName();
		_cprintf("%s\n", savePathDir);
	}

  

posted @ 2017-03-27 13:01  一样菜  阅读(1741)  评论(0编辑  收藏  举报