环境:
VS2019
字符集设置:
code:
#include <iostream>
#include <string>
#include <Windows.h>
#include <ShlObj.h>
#include <stdio.h>
using namespace std;
static void open_folder_browser(string& path);
int main()
{
cout << "hello, world!" << endl;
string folder_path;
open_folder_browser(folder_path);
cout << folder_path << endl;
cout << "Done" << endl;
getchar();
}
static void open_folder_browser(string& path)
{
TCHAR szPathName[MAX_PATH];
BROWSEINFO bInfo = { 0 };
bInfo.hwndOwner = GetForegroundWindow();//父窗口
// bInfo.lpszTitle = TEXT("Select folder");
bInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE | BIF_UAHINT/*带TIPS提示*/;
//关于更多的 ulFlags 参考 http://msdn.microsoft.com/en-us/library/bb773205(v=vs.85).aspx
LPITEMIDLIST lpDlist;
lpDlist = SHBrowseForFolder(&bInfo);
if (lpDlist != NULL)//单击了确定按钮
{
SHGetPathFromIDList(lpDlist, szPathName);
// cout << szPathName << endl;
path = szPathName;
}
}
代码参考了这里
效果: