点击按钮打开选择文件对话框
2014-07-23 11:13
399 查看
1.创建回调函数
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch (uMsg)
{
case BFFM_INITIALIZED: //初始化消息
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);//传递默认打开路径
break;
case BFFM_SELCHANGED: //选择路径变化,
{
char curr[MAX_PATH];
SHGetPathFromIDList((LPCITEMIDLIST)lParam, curr);
::SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)curr);
}
break;
default:
break;
}
return 0;
}
2.按钮处理函数
TCHAR szDefaultDir[MAX_PATH];
CString strDef(_T("C://WINDOWS//"));
memcpy(szDefaultDir, strDef.GetBuffer(strDef.GetLength()), strDef.GetLength());
strDef.ReleaseBuffer();
TCHAR szPath[MAX_PATH];
BROWSEINFO br;
ITEMIDLIST* pItem;
br.hwndOwner = this->GetSafeHwnd();
br.pidlRoot = 0;
br.pszDisplayName = 0;
br.lpszTitle = "选择路径";
br.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI;
br.lpfn = BrowseCallbackProc; //设置CALLBACK函数
br.iImage = 0;
br.lParam = long(&szDefaultDir); //设置默认路径
pItem = SHBrowseForFolder(&br);
if (pItem != NULL)
{
if (SHGetPathFromIDList(pItem, szPath) == TRUE)
{
CString strDir = szPath;
}
}
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch (uMsg)
{
case BFFM_INITIALIZED: //初始化消息
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);//传递默认打开路径
break;
case BFFM_SELCHANGED: //选择路径变化,
{
char curr[MAX_PATH];
SHGetPathFromIDList((LPCITEMIDLIST)lParam, curr);
::SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)curr);
}
break;
default:
break;
}
return 0;
}
2.按钮处理函数
TCHAR szDefaultDir[MAX_PATH];
CString strDef(_T("C://WINDOWS//"));
memcpy(szDefaultDir, strDef.GetBuffer(strDef.GetLength()), strDef.GetLength());
strDef.ReleaseBuffer();
TCHAR szPath[MAX_PATH];
BROWSEINFO br;
ITEMIDLIST* pItem;
br.hwndOwner = this->GetSafeHwnd();
br.pidlRoot = 0;
br.pszDisplayName = 0;
br.lpszTitle = "选择路径";
br.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI;
br.lpfn = BrowseCallbackProc; //设置CALLBACK函数
br.iImage = 0;
br.lParam = long(&szDefaultDir); //设置默认路径
pItem = SHBrowseForFolder(&br);
if (pItem != NULL)
{
if (SHGetPathFromIDList(pItem, szPath) == TRUE)
{
CString strDir = szPath;
}
}
相关文章推荐
- C#窗体程序怎么点击按钮打开一个选择文件的对话框
- MFC点击按钮打开文件选择对话框
- MFC点击按钮打开文件选择对话框并获取图片
- uploader 点击上传无法打开选择文件对话框
- asp.net 浏览按钮 asp.net C# 如何点击按钮弹出选择文件对话框
- C#+Emgucv通过点击按钮弹出选择文件对话框
- 点击图片或按钮打开文件对话框
- asp.net 点击一个按钮弹出对话框选择文件然后选择文件完成之后就自动上传文件 input(file)
- C#+Emgucv通过点击按钮弹出选择文件对话框
- C++.QT编程学习笔记——点击一个按钮后出现选择文件对话框
- C#之WinForm基础 点击按钮出现 打开文件的对话框
- 打开文件对话框与目录选择对话框
- Rundll32使用技巧 使用Shell打开选择文件对话框以及其它
- window下打开文件选择对话框和浏览对话框的方式
- 如何打开文件对话框并将选择的文件显示在编辑框中?
- 目录选择对话框、文件打开或保存对话框、字体对话框和颜色对话框
- 打开文件对话框,浏览 等 选择目录
- VC++ 6.0点击打开文件按钮出错解决办法
- 打开文件对话框与目录选择对话框
- 点击下载文件时弹出对话框;而不是直接打开代码