MFC打开文件夹对话框初始化打开路径

来源:互联网 发布:vb 字符串 校验码 编辑:程序博客网 时间:2024/05/19 03:25

使用MFC开发程序时,有时需要选择文件夹,可使用SHBrowseForFolder解决,但此方法并不支持初始化选择路径。

博客主页:http://blog.csdn.net/xs1102

文章地址:http://blog.csdn.net/xs1102/article/details/77170181

打开文件夹对话框,代码如下:

BROWSEINFO bi;TCHAR Buffer[MAX_PATH];bi.hwndOwner = NULL;bi.pidlRoot =NULL;bi.pszDisplayName = Buffer;bi.lpszTitle = _T("选择文件夹:");bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS;//打开选择文件夹对话框LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);if(pIDList){//获取文件夹路径SHGetPathFromIDList(pIDList, Buffer);}

上述代码可以打开一个对话框选择窗口,但并不能设置初始化路径。

设置初始化路径可以设置一个回调函数,在初始化完成之后设置选定的路径。

bi.lParam = (LPARAM)(TCHAR*)temppath;bi.lpfn = OpenFolderProc;

回调函数定义如下:

//打开文件夹对话框的回调函数int CALLBACK OpenFolderProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)  {if(uMsg == BFFM_INITIALIZED){//输出选择的文件夹SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);}return 0;  }
此时,便可以设置初始文件夹了。

为了进一步方便使用,还可以封装成一个类。

我这里不再贴出代码,需要的请自行下载。

http://download.csdn.net/download/xs1102/9933449

阅读全文
0 0
原创粉丝点击