Programming
[mfc] 버튼클릭했을 때 폴더열기 이벤트
Lunik
2015. 9. 9. 19:55
반응형
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
ITEMIDLIST *pidlBrowse;
WCHAR pszPathname[MAX_PATH];
BROWSEINFO BrInfo;
BrInfo.hwndOwner = GetSafeHwnd();
BrInfo.pidlRoot = NULL;
memset(&BrInfo, 0x00, sizeof(BrInfo));
BrInfo.pszDisplayName = pszPathname;
BrInfo.lpszTitle = _T("Select folder");
BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;
// 이벤트에 대한 사용자정의 함수
// BrInfo.lpfn = BrowseCallbackProc;
// 사용자정의 함수에 넘겨질 인자로 사용자가 설정하고자 하는 경로를 설정한다.
// 예를들어 초기폴더경로를 C드라이브로 설정하는 경우
CString strInitPath = _T("C:\\");
BrInfo.lParam = (LPARAM)strInitPath.GetBuffer();
pidlBrowse = ::SHBrowseForFolder(&BrInfo);
if (pidlBrowse != NULL)
{
// 선택된 폴더 경로얻음
SHGetPathFromIDList(pidlBrowse, pszPathname);
// 경로(pszPathname)를 이용하여 이후작업 추가
UpdateData();
m_edit_folder = pszPathname;
UpdateData(FALSE);
}