반응형
다이얼로그도 띄어주고 폴더 경로를 가져와 주는 예제다.
1. 구현
CString strSelectedFolder;
ITEMIDLIST *pidlBrowse;
TCHAR pszPathname[MAX_PATH];
BROWSEINFO BrInfo;
BrInfo.hwndOwner = GetSafeHwnd();
BrInfo.pidlRoot = NULL;
memset( &BrInfo, 0, sizeof(BrInfo) );
BrInfo.pszDisplayName = (LPWSTR)pszPathname;
BrInfo.lpszTitle = L"폴더를 선택해 주십시오.";
BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;
// 다이얼로그 띄우기
pidlBrowse = SHBrowseForFolder(&BrInfo);
if( pidlBrowse != NULL)
{
// 선택한 폴더경로를 얻어옴
BOOL bSuccess = ::SHGetPathFromIDListW(pidlBrowse, pszPathname);
if ( bSuccess )
{
strSelectedFolder = pszPathname; //<-- 여기서 값을 입력
}
else
{
MessageBox(L"잘못된 폴더명입니다.", L"", MB_OKCANCEL|MB_ICONASTERISK );
}
}
2. 실행 결과
위에 코드 실행 시 아래 처럼 다이얼로그가 나온다.
3. 폴더 경로 확인
위에 그림에서 확인 클릭 후
Visual Studio 로 pszPathname 변수 값을 보면 선택 된 폴더 경로가 저장 된 것을 확인 할 수 있다.
반응형
'MFC' 카테고리의 다른 글
[MFC] Directory 폴더 열기 예제 (0) | 2024.01.18 |
---|---|
[MFC] TCP/IP Socket 통신 예제 (0) | 2024.01.18 |
[MFC] 리스트 컨트롤(List control) 예제 (0) | 2024.01.18 |