Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-69896
avatarx
2002-04-09 13:24
2002.04.22
TList to file?


1-69930
Veselov
2002-04-08 20:10
2002.04.22
PDF, или как получить доступ к тексту внутри него ?


6-69942
Davile
2002-02-07 15:56
2002.04.22
TClientSocket


1-69846
f0rm
2002-04-08 22:59
2002.04.22
Регистрация собственного расширения


1-69848
Malder
2002-04-08 18:22
2002.04.22
Как создать переменную типа TSaveDialog ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский