Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2014, 16:06   #1
МишкаНовый
 
Регистрация: 17.03.2014
Сообщений: 4
По умолчанию MFC окно "Выбор папки" как сделать модальным?

Есть окно "Выбор папки".
Как сделать его модальным?
Код:
BROWSEINFO    info;
	char          szDir[MAX_PATH];
	char          szFolderName[MAX_PATH];
    LPITEMIDLIST  pidl;
    LPMALLOC      pShellMalloc;

    // SHBrowseForFolder возвращает PIDL. Память для  PIDL  
    // распределяется оболочкой. В итоге, мы должны очистить
    // эту память, так как мы должны получить указатель на объект
    // shell malloc COМ который будет позже освобожден PIDL.
    if(SHGetMalloc(&pShellMalloc) == NO_ERROR)
    {
		//если мы получили оболочку malloc объекта,
        // тогда продолжите, инициализируя структуру BROWSEINFO
        memset(&info, 0x00,sizeof(info));
        info.hwndOwner = NULL;                 // окна dладелец
        info.pidlRoot  = 0;                      // Корневая папка
        info.pszDisplayName = szFolderName;     // вернуться отображаемое имя
        info.lpszTitle = "Выбор папки";         // заголовок
        info.ulFlags   = BIF_RETURNONLYFSDIRS;   // конфиг
        info.lpfn = 0;                           // функция обратного вызова

        // вызовем диалог
        pidl = SHBrowseForFolder(&info);
        // pidl будет null если пользователь нажмет cancel в диалоге выбора
        // pidl не будет null если пользователь выбрал папку
        if(pidl)
        {
            SHGetPathFromIDList(pidl, szFolderName);
        }
	}
// стандартная структура
	typedef struct	{
    HWND          hwndOwner;
    LPCITEMIDLIST pidlRoot;
    LPSTR         pszDisplayName;
    LPCSTR        lpszTitle;
    UINT          ulFlags;
    BFFCALLBACK   lpfn;
    LPARAM        lParam;
    int           iImage;
	} 	BROWSEINFO;

	return szFolderName;
МишкаНовый вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать кнопку выбора папки, кнопка "Обзор" betirsolt Общие вопросы Delphi 2 28.06.2012 21:39
"Немое" окно в приложении на MFC Tihon Win Api 0 31.05.2011 11:11
как сделать окно "Совет дня.." Человек_Борща Общие вопросы Delphi 11 09.01.2011 03:19
Как сделать кнопку "больше"-"меньше" Clericos HTML и CSS 8 30.09.2009 20:20
сделать окно "открыть","сохранить как" blackstersl Общие вопросы Delphi 1 24.08.2008 10:31