Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

Как вызвать окно Обзор Папок   Найти похожие ветки 

 
SZap   (2002-02-17 17:19) [0]

Как вызвать окно Обзор Папок для выбора нужной папки?


 
VuDZ ©   (2002-02-17 19:16) [1]

SHBrowseForFolderA()


CString strTmpPath;

BOOL GetFolder(CString* strSelectedFolder,
const char* lpszTitle,
const HWND hwndOwner,
const char* strRootFolder,
const char* strStartFolder)
{
char pszDisplayName[MAX_PATH];
LPITEMIDLIST lpID;
BROWSEINFOA bi;

bi.hwndOwner = hwndOwner;
if (strRootFolder == NULL){
bi.pidlRoot = NULL;
}else{
LPITEMIDLIST pIdl = NULL;
IShellFolder* pDesktopFolder;
char szPath[MAX_PATH];
OLECHAR olePath[MAX_PATH];
ULONG chEaten;
ULONG dwAttributes;

strcpy(szPath, (LPCTSTR)strRootFolder);
if (SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)))
{
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, olePath, MAX_PATH);
pDesktopFolder->ParseDisplayName(NULL, NULL, olePath, &chEaten, &pIdl, &dwAttributes);
pDesktopFolder->Release();
}
bi.pidlRoot = pIdl;
}
bi.pszDisplayName = pszDisplayName;
bi.lpszTitle = lpszTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc;
if (strStartFolder == NULL){
bi.lParam = FALSE;
}else{
strTmpPath.Format("%s", strStartFolder);
bi.lParam = TRUE;
}
bi.iImage = NULL;
lpID = SHBrowseForFolderA(&bi);
if (lpID != NULL){
BOOL b = SHGetPathFromIDList(lpID, pszDisplayName);
if (b == TRUE){
strSelectedFolder->Format("%s",pszDisplayName);
return TRUE;
}
}else{
strSelectedFolder->Empty();
}
return FALSE;
}

int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
TCHAR szDir[MAX_PATH];
switch(uMsg){
case BFFM_INITIALIZED:
if (lpData){
strcpy(szDir, strTmpPath.GetBuffer(strTmpPath.GetLength()));
SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)szDir);
}
break;
case BFFM_SELCHANGED: {
if (SHGetPathFromIDList((LPITEMIDLIST) lParam ,szDir)){
SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
}
break;
}
default:
break;
}

return 0;
}


 
SZap   (2002-02-17 20:47) [2]

ИЗВЕНИТЕ, а можно поподробнее?


 
VuDZ ©   (2002-02-17 22:10) [3]

нет.
а что собсно надо подробнее?


 
MadCrew - NuClon   (2002-02-18 17:33) [4]

Блин ну вы чё!!! Это сайт про дельфи а вы тут... :) Хотя полезно %)


 
Юрий Зотов ©   (2002-02-18 18:03) [5]

Или проще - SelectDirectory.


 
VuDZ ©   (2002-02-18 19:52) [6]

2MadCrew - NuClon
это раздел про winAPI :>



Страницы: 1 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
3-69754
VLL
2002-04-02 17:05
2002.04.22
Можно ли сделать setup


3-69679
Filat
2002-03-29 11:54
2002.04.22
Как правильно подключить Access2000 и MS SQL Server 7.0?


6-69962
Sender
2002-02-03 21:22
2002.04.22
Передача данных по сети


3-69660
DmitryV
2002-04-02 09:53
2002.04.22
Количество RecordSet ов


6-69959
Alexey Evstigneev
2001-10-30 06:51
2002.04.22
Wake-on-Lan