Использую диалоговое окно для выбора папок. Код такой Код (Text): BROWSEINFO bri; LPITEMIDLIST lpidl; bri.hwndOwner = hwndParent; bri.pidlRoot = 0; bri.pszDisplayName = NULL; bri.lpszTitle = "Select a folder"; bri.ulFlags = BIF_RETURNONLYFSDIRS | BIF_DONTGOBELOWDOMAIN; bri.lpfn = 0; bri.lParam = 0; bri.iImage = 0; lpidl = SHBrowseForFolder(&bri); if (!lpidl) return FALSE; SHGetPathFromIDList(lpidl, lpSourceFldName); CoTaskMemFree((PVOID)lpidl); return TRUE; Как сделать так, чтобы при открытии этого окна была выделена нужная мне папка? <font color="red]пользуемся тегом CODE</font><!--color-->
Код (Text): static int CALLBACK BrowseCallbackProc (HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { switch (uMsg) { case BFFM_INITIALIZED: if (lpData) SendMessage(hWnd,BFFM_SETSELECTION,TRUE,lpData); break; } return 0; } ... char lpSourceFldName[MAX_PATH]; char buf[]="C:\\WINDOWS\\SYSTEM32\\DRIVERS"; BROWSEINFO bri; LPITEMIDLIST lpidl; bri.hwndOwner = hwndParent; bri.pidlRoot = 0; bri.pszDisplayName = NULL; bri.lpszTitle = "Select a folder"; bri.ulFlags = BIF_RETURNONLYFSDIRS | BIF_DONTGOBELOWDOMAIN; bri.lpfn = BrowseCallbackProc; bri.lParam = (LPARAM)buf; //передаешь имя папки в callback-функцию bri.iImage = 0; lpidl = SHBrowseForFolder(&bri); if (!lpidl) return FALSE; SHGetPathFromIDList(lpidl, lpSourceFldName); MessageBox(hwndParent,lpSourceFldName,"Select",0); CoTaskMemFree((PVOID)lpidl); return TRUE;
Создать функцию BrowseCallbackProc (член lpfn структуры BROWSEINFO) и послать сообщение BFFM_SETSELECTION в ответ на BFFM_INITIALIZED. Добавлено: ох, опоздал, krid24 уже ответил