来源:http://blog.sina.com.cn/s/blog_567a5830010168hz.html
SHBrowseForFolder打开文件夹时,每次都是从根目录打开。当要给好多路径参数的时候,当数据都放在嵌套很深的夹子里的时候,非常讨厌~~~
<不像CFileDialog会自动记住上次路径~>
搞法:
1.定义 全局变量
2.添加回调函数
static
INT CALLBACK BrowseCallbackProc(HWND hwnd,
{
switch(uMsg)
{
case
break;
case
if
{
}
break;
}
return
}
3.打开button ::OnBUTTON()中写:
LPITEMIDLIST idl = NULL;
BROWSEINFO bi ={0};
char name[MAX_PATH];
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = AfxGetMainWnd()-> GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = name;
bi.lpszTitle = "选择文件目录";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)global;
idl = SHBrowseForFolder(&bi);
global = idl;
SHGetPathFromIDList(idl, XXX.GetBuffer(MAX_PATH));
XXX.ReleaseBuffer();
Cwnd* pWnd = NULL;
pWnd = GetDlgItem(IDC_XXXXX);
if(pWnd)
{
}
参考:
http://topic.csdn.net/u/20070919/09/bcd124b7-1294-4333-a266-a6244c1b5867.html
http://wuqinzhong.blog.163.com/blog/static/452223120097785746847/