int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
CHAR szDesktop[MAX_PATH];
getDesktoppath(szDesktop); // 设置默认的打开路径
if (uMsg == BFFM_INITIALIZED)
{
SendMessage(hwnd, BFFM_SETSELECTION, (WPARAM)TRUE,(LPARAM)szDesktop);
}
return 0;
}
/**
* 文件夹选择对话框
*/
unsigned char browseforfolder(char path[]) {
LPITEMIDLIST lpDlist =NULL;
TCHAR szPathName[MAX_PATH];
BROWSEINFO bInfo = { 0 };
memset(&bInfo, 0, sizeof(BROWSEINFO));
bInfo.lpszTitle = "选择文件的保存路径";
bInfo.hwndOwner = GetForegroundWindow();
bInfo.lpfn = BrowseCallbackProc;
bInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI|
BIF_UAHINT| BIF_NONEWFOLDERBUTTON ;
lpDlist = SHBrowseForFolder(&bInfo);
if(lpDlist!=NULL)
{
SHGetPathFromIDList(lpDlist, szPathName);
strcpy(path,szPathName);
return 1;
}
return 0;
}
基于C/C++的实现文件夹选择对话框
于 2021-11-08 10:57:23 首次发布