Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Стандартный диалог выбора директории. commctrl


Автор: En_t_end 15.1.2006, 12:22
Не могу сообразить, как средствами commctrl создать и отобразить стандартный диалог выбора директории. С выбором файла для сохранения/открытия всё понятно.
Если это нельзя сделать средствами commctrl, то где этот шаблон диалога можно взять ?

Автор: rsm 15.1.2006, 13:16
Код

#include <shlobj.h>

BOOL BrowseFolder(HWND hOwner, LPSTR lpFolder)
{
    LPITEMIDLIST pidl;
    BROWSEINFO bi;

    ZeroMemory((LPVOID) &pidl, sizeof(LPITEMIDLIST));
    ZeroMemory((LPVOID) &bi, sizeof(BROWSEINFO));
    bi.hwndOwner = hOwner;
    bi.pszDisplayName = lpFolder;
    bi.lpszTitle = "Выберите папку";
    pidl = SHBrowseForFolder(&bi);
    return (pidl && SHGetPathFromIDList(pidl, lpFolder));
}

Использование:
Код

int start()
{
    char buff[MAX_PATH];

    if(BrowseFolder(0, (LPSTR) buff))
        MessageBox(0, (LPCSTR) buff, "Directory is", MB_OK);
    else
        MessageBox(0, "Directory not specifed!", NULL, MB_OK);
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)