반응형
void CKinect4WinDlg::OnBnClickedSetfolder()
{
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);
AfxMessageBox((LPCSTR)pszPathname);
}
}
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;
}
반응형
'Programming > MFC-C++' 카테고리의 다른 글
| 임베디드 최적화 관련 함수 (0) | 2013.01.28 |
|---|---|
| Google APIs - Key 발급 받는 방법 (0) | 2013.01.09 |
| [GUI] Radio Button, Button 배경색 글자색 변경 (0) | 2013.01.02 |
| Thread 관련 함수 및 API, 쓰레드 제어 (0) | 2012.12.30 |
| [GUI] 유용한 Control 모음 - 사용자 컨트롤 (0) | 2012.12.26 |