Главная страница
    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.007 c
1-69862
shelest
2002-04-02 10:14
2002.04.22
Формы в DLL.


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


3-69751
mage
2002-04-02 16:37
2002.04.22
Помогите! не работает функция UPPER в SQL


1-69918
ymin
2002-04-09 11:28
2002.04.22
А как сделать, чтобы Button была выделена и при нажатии Enter


1-69777
Vint
2002-04-10 09:58
2002.04.22
Версия проекта





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский