目录选择对话框
来源:百度文库 编辑:神马文学网 时间:2024/04/26 19:26:36
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;
}
目录选择对话框
对话框
[c#] 如何选择一个目录
对FckEditor编辑器在MAXTHON浏览器下选择服务器文件对话框显示不正常的改进
目录
目录:
VC:个性化对话框
VC:个性化对话框2
VB- 工具栏、对话框
对话框的设置
(WPF)对话框中的数据绑定
如何创建非模式对话框
下载对话框没了怎么办?
不规则对话框的又一实现
对话框及其控件颜色设置
vc中更改对话框大小
父页面 弹出div对话框
<<选择>>
VC设置对话框背景图的代码
怎样实现WebBrowser中另存为对话框功能?
OLECMDID_SAVEAS 使对话框不被弹出
别让打开文件对话框总是老样子
通用对话框函数说明(CFileDialog,CColorDialog,CFontDialo...
如何设置对话框的背景颜色