반응형
int CALLBACK BrowseCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { CHAR lpszDir[255]; switch(uMsg) { case BFFM_INITIALIZED: SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData); break; case BFFM_SELCHANGED: if(SHGetPathFromIDList((LPITEMIDLIST)lParam, lpszDir)) SendMessage(hwnd, BFFM_SETSTATUSTEXT,0, (LPARAM)lpszDir); break; } return 0; } //원하는 이벤트 핸들러에 추가 ITEMIDLIST *pidlBrowse; WCHAR pszPathname[MAX_PATH]; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; CString str = "c:\\depth"; //초기 디렉토리 설정 LPCTSTR lpszDefaultFolder = str; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.pszDisplayName = (LPSTR)pszPathname; BrInfo.lpszTitle = _T("Select directory"); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; //폴더만 선택 가능 BrInfo.ulFlags = BIF_BROWSEINCLUDEFILES; //디렉토리와 파일까지 선택가능 BrInfo.lParam = (LPARAM)lpszDefaultFolder; BrInfo.lpfn = BrowseCallback; pidlBrowse = ::SHBrowseForFolder(&BrInfo); if (pidlBrowse != NULL) // 폴더 선택이 완료되면 { //Get Path SHGetPathFromIDList(pidlBrowse, (LPSTR)pszPathname); m_strFolderName.Format("%s",pszPathname); }
반응형
'Programming > MFC-C++' 카테고리의 다른 글
구조체 sizeof 의 오작동 (0) | 2013.04.26 |
---|---|
[C++, C] 파일의 중간 부분 데이터 변경하기 (0) | 2013.04.25 |
CFileDialog 불러오기 저장하기 (0) | 2013.04.19 |
Wave 출력 및 waveOutClose 함수, Callback 함수와의 연동 (0) | 2013.04.18 |
IK SVM (Fast Intersection / Additive Kernel SVMs) (0) | 2013.04.08 |