描述:
当我调用SHBrowseForFolder函数打开一个文件夹时,我想目录为我上次出现目录。
即与CFileDialog一样,当我上次打开的目录为:C:\XX时,这次打开也是C:\XX目录。
当我调用SHBrowseForFolder函数打开一个文件夹时,我想目录为我上次出现目录。
即与CFileDialog一样,当我上次打开的目录为:C:\XX时,这次打开也是C:\XX目录。
解决方案 »
- MSXML无法处理过大的xml?
- visual studio2005里,一个程序我什么都没动,为什么每次点调试它都要完全重新编译?
- 这样创建MDI的子窗口为什么不行?
- 请问高手们,ScrollView中的OnPrepareDC()到底应该怎么用啊?
- 如何同時啟動24個线程,有什么简捷的方法么?
- vc怎样得到mysql的表结构和所有表名?
- 急!类函数中有指针参数时遇到的问题
- 关于人工智能值专家系统
- 怎么在EDIT BOX中更新时间!!??求出各位兄弟姐妹,拉兄弟一把吧!!!
- 怎么修改OnDraw的代码让控件背景透明?
- List control 单击消息!!!
- createfile如何创建文件名中包含空格的文本文件
{
switch(uMsg)
{
case BFFM_INITIALIZED:
{
CString strPath = AfxGetApp()->GetProfileString(_T("Save"), _T("Path"));
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)strPath.GetBuffer(0));
}
break;
default: break;
}
return 0;
}TCHAR szFilePath[MAX_PATH] = {0};
BROWSEINFO bsInfo;
::ZeroMemory(&bsInfo, sizeof(BROWSEINFO));
bsInfo.hwndOwner = this->m_hWnd;
bsInfo.pszDisplayName = szFilePath;
bsInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS;
bsInfo.lpfn = BrowseCallbackProc;
LPITEMIDLIST pIDList = SHBrowseForFolder(&bsInfo);
if(pIDList == NULL)
return 0;
SHGetPathFromIDList(pIDList, szFilePath);
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc)))
return 0;
lpMalloc->Free(pIDList);
AfxGetApp()->WriteProfileString(_T("Save"), _T("Path"), szFilePath);
看看常委的blog