台北车站到垦丁:VC++
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 05:18:21
char szDir[MAX_PATH];
LPMALLOC pMalloc = NULL;
BROWSEINFO bi;
ITEMIDLIST *pidl;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;
bi.lpszTitle = "请选择目录";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
pidl = SHBrowseForFolder(&bi);
if(pidl == NULL)
return;
if(!SHGetPathFromIDList(pidl, szDir))
return;
if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
如何从当前目录的文件夹浏览
点击这里查看逐句中英文对照机器翻译
查看机器翻译免责声明
不再更新的 KB 内容免责声明
查看本文应用于的产品
本页概要
更多信息
示例代码
展开全部 | 关闭全部
概要榛樿鎯呭喌涓嬶,SHBrowseForFolder API 使用户可以在浏览外壳的命名空间,并选取一个文件夹在桌面上启动。 通常,您可能更愿意您的应用程序启动文...榛樿鎯呭喌涓嬶,SHBrowseForFolder API 使用户可以在浏览外壳的命名空间,并选取一个文件夹在桌面上启动。 通常,您可能更愿意您的应用程序启动文件夹,用户可能希望,如当前的工作目录的浏览对话框。
若要设置浏览对话框的初始选定区域,BROWSEINFO 结构必须包含一个回调函数。 回调函数调用与消息 BFFM_INITIALIZED 时, 它又可以发送到所需的路径设置对话框选择 BFFM_SETSELECTION 消息。
回到顶端
更多信息下面是一些示例代码,将显示与当前选定的目录浏览对话框的。 它还会在对话框的状态窗口中显示当前所选文件夹的路径。 示例代码 #define STRICT #inc...下面是一些示例代码,将显示与当前选定的目录浏览对话框的。 它还会在对话框的状态窗口中显示当前所选文件夹的路径。
回到顶端
示例代码
#define STRICT
#include
#include
INT CALLBACK BrowseCallbackProc(HWND hwnd,
UINT uMsg,
LPARAM lp,
LPARAM pData)
{
TCHAR szDir[MAX_PATH];
switch(uMsg)
{
case BFFM_INITIALIZED:
if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
{
// WParam is TRUE since you are passing a path.
// It would be FALSE if you were passing a pidl.
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
}
break;
case BFFM_SELCHANGED:
// Set the status window to the currently selected path.
if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
{
SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
}
break;
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
BROWSEINFO bi;
TCHAR szDir[MAX_PATH];
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = NULL;
bi.pszDisplayName = 0;
bi.pidlRoot = 0;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc;
pidl = SHBrowseForFolder(&bi);
if (pidl)
{
//
// Other code omited
//
pMalloc->lpVtbl->Free(pMalloc,pidl);
}
pMalloc->lpVtbl->Release(pMalloc);
}
}
return 0;
}
LPMALLOC pMalloc = NULL;
BROWSEINFO bi;
ITEMIDLIST *pidl;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;
bi.lpszTitle = "请选择目录";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
pidl = SHBrowseForFolder(&bi);
if(pidl == NULL)
return;
if(!SHGetPathFromIDList(pidl, szDir))
return;
if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
如何从当前目录的文件夹浏览
点击这里查看逐句中英文对照机器翻译
查看机器翻译免责声明
不再更新的 KB 内容免责声明
查看本文应用于的产品
本页概要
更多信息
示例代码
展开全部 | 关闭全部
概要榛樿鎯呭喌涓嬶,SHBrowseForFolder API 使用户可以在浏览外壳的命名空间,并选取一个文件夹在桌面上启动。 通常,您可能更愿意您的应用程序启动文...榛樿鎯呭喌涓嬶,SHBrowseForFolder API 使用户可以在浏览外壳的命名空间,并选取一个文件夹在桌面上启动。 通常,您可能更愿意您的应用程序启动文件夹,用户可能希望,如当前的工作目录的浏览对话框。
若要设置浏览对话框的初始选定区域,BROWSEINFO 结构必须包含一个回调函数。 回调函数调用与消息 BFFM_INITIALIZED 时, 它又可以发送到所需的路径设置对话框选择 BFFM_SETSELECTION 消息。
回到顶端
更多信息下面是一些示例代码,将显示与当前选定的目录浏览对话框的。 它还会在对话框的状态窗口中显示当前所选文件夹的路径。 示例代码 #define STRICT #inc...下面是一些示例代码,将显示与当前选定的目录浏览对话框的。 它还会在对话框的状态窗口中显示当前所选文件夹的路径。
回到顶端
示例代码
#define STRICT
#include
#include
INT CALLBACK BrowseCallbackProc(HWND hwnd,
UINT uMsg,
LPARAM lp,
LPARAM pData)
{
TCHAR szDir[MAX_PATH];
switch(uMsg)
{
case BFFM_INITIALIZED:
if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
{
// WParam is TRUE since you are passing a path.
// It would be FALSE if you were passing a pidl.
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
}
break;
case BFFM_SELCHANGED:
// Set the status window to the currently selected path.
if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
{
SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
}
break;
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
BROWSEINFO bi;
TCHAR szDir[MAX_PATH];
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = NULL;
bi.pszDisplayName = 0;
bi.pidlRoot = 0;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc;
pidl = SHBrowseForFolder(&bi);
if (pidl)
{
//
// Other code omited
//
pMalloc->lpVtbl->Free(pMalloc,pidl);
}
pMalloc->lpVtbl->Release(pMalloc);
}
}
return 0;
}