반응형

void FolderSelectFunc()

{

    ITEMIDLIST *pidlBrowse;
    WCHAR       pszPathname[MAX_PATH];
    // MFC에서는 FolderBrowserDialog 를 지원하지 않아, 구조체를 선언하여 직접 호출 해야 한다.
    // 직접 호출 하기 위해서는 BROWSEINFO 구조체를 사용해야 한다.
    BROWSEINFO  BrInfo;
    // 자기 자신의 핸들을 가지고 옴.
    BrInfo.hwndOwner = GetSafeHwnd();
    BrInfo.pidlRoot = NULL; // NULL 이면 "바탕화면" 초기 설정
                            // ITEMIDLIST 구조체에서 지정함.

    memset(&BrInfo, 0, sizeof(BrInfo));
    BrInfo.pszDisplayName = pszPathname;
    BrInfo.lpszTitle = _T("Select Directory");
    BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;

    pidlBrowse = ::SHBrowseForFolder(&BrInfo);

    if(pidlBrowse != NULL)
    {
        SHGetPathFromIDList(pidlBrowse, pszPathname);
    }
    MessageBox(pszPathname, L"선택된 폴더명", MB_OK);
    UpdateData(FALSE);

}

 

 

반응형

'프로그래밍 > API/MFC Source' 카테고리의 다른 글

주소를 배열로 연결하는 방법  (0) 2014.02.07
Data Conversions  (0) 2012.07.31
[MFC] ListControl 컬럼 추가  (0) 2012.06.07

+ Recent posts