调用系统对话框,选择指定文件夹路径
2017-05-17 13:29
363 查看
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch (uMsg)
{
case BFFM_INITIALIZED:
{
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData);
}
break;
default:
break;
}
return 0;
}
BOOL CEliteTubeCut::SetAndGetSavePath(CString& foldPath)
{
TCHAR szBuffer[MAX_PATH] = { 0 };
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
CComPtr<IDispatch> swDis;
iSwApp->Frame(&swDis);
CComPtr<IFrame> swFrame;
swDis->QueryInterface(__uuidof(IFrame), (void**)&swFrame);
if (NULL == swFrame)
{
return FALSE;
}
long long hw = 0;
swFrame->GetHWndx64(&hw);
bi.hwndOwner = (HWND)hw;
bi.pszDisplayName = szBuffer;
bi.lpszTitle = _T("选择存储路径文件位置:");
bi.ulFlags = 0x0040 | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_USENEWUI /*包含一个编辑框 用户可以手动填写路径 对话框可以调整大小之类的..;*/
| BIF_UAHINT /*带TIPS提示*/ /*| BIF_NONEWFOLDERBUTTON 不带新建文件夹按钮*/;
bi.lpfn = BrowseCallbackProc;
TCHAR sDesktopDir[_MAX_PATH]; // 当前电脑桌面路径
SHGetSpecialFolderPath(NULL, sDesktopDir, CSIDL_DESKTOP, 0);
CString strDefaultPath(sDesktopDir);
bi.lParam = (LPARAM)(LPCTSTR)(strDefaultPath);
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if (NULL == idl)
{
return FALSE;
}
SHGetPathFromIDList(idl, szBuffer);
return TRUE;
}
{
switch (uMsg)
{
case BFFM_INITIALIZED:
{
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData);
}
break;
default:
break;
}
return 0;
}
BOOL CEliteTubeCut::SetAndGetSavePath(CString& foldPath)
{
TCHAR szBuffer[MAX_PATH] = { 0 };
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
CComPtr<IDispatch> swDis;
iSwApp->Frame(&swDis);
CComPtr<IFrame> swFrame;
swDis->QueryInterface(__uuidof(IFrame), (void**)&swFrame);
if (NULL == swFrame)
{
return FALSE;
}
long long hw = 0;
swFrame->GetHWndx64(&hw);
bi.hwndOwner = (HWND)hw;
bi.pszDisplayName = szBuffer;
bi.lpszTitle = _T("选择存储路径文件位置:");
bi.ulFlags = 0x0040 | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_USENEWUI /*包含一个编辑框 用户可以手动填写路径 对话框可以调整大小之类的..;*/
| BIF_UAHINT /*带TIPS提示*/ /*| BIF_NONEWFOLDERBUTTON 不带新建文件夹按钮*/;
bi.lpfn = BrowseCallbackProc;
TCHAR sDesktopDir[_MAX_PATH]; // 当前电脑桌面路径
SHGetSpecialFolderPath(NULL, sDesktopDir, CSIDL_DESKTOP, 0);
CString strDefaultPath(sDesktopDir);
bi.lParam = (LPARAM)(LPCTSTR)(strDefaultPath);
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if (NULL == idl)
{
return FALSE;
}
SHGetPathFromIDList(idl, szBuffer);
return TRUE;
}
相关文章推荐
- EXCEL-VBA:调用打开文件夹对话框,选择路径
- 调用系统控件,打开选择文件或路径的对话框
- WEB调用系统颜色选择对话框
- VB 调用系统API 选择文件夹 代码
- Android调用系统Camera录像时不能指定保存路径的问题
- 打开选择文件对话框时指定初始选择路径
- 调用系统UIImagePickerController录像并保存到指定的文件夹,解决保存后播放视频角度偏移90度问题
- vb打开文件夹对话框,并可事先指定默认路径,打开指定目录的对话框
- 转载《WEB调用系统颜色选择对话框》
- Excel VBA 获取指定路径下的图片名称(带后缀)/(不带后缀)/跳出选择路径对话框手动选择路径
- 调用系统相机拍照片保存到指定的路径
- C# 调用系统的 文件夹选项 对话框
- windows下C语言调用系统文件选择对话框
- 如何弹出一个选择文件夹路径的对话框选择路径?
- zz:利用SHBrowseForFolder 产生路径选择对话框 同时指向默认路径文件夹
- VC选择文件夹路径对话框 - SHBrowseForFolder 函数
- VB6.0 浏览文件夹对话框 选择文件保存路径
- 【已解决】C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
- android 调用系统图库查看指定路径的图片
- 如何在Windows窗体中调用系统调色板对话框,并获取用户所选择的颜色?