c/c++/winapi
[winapi] 파일 선택 다이얼로그 띄우기
밀크빵
2012. 12. 17. 13:18
- 함수 원형
BOOL fnBrowseFolder( HWND hWnd, const char *pTitle, char *pFolder, UINT nFlags )
{
LPMALLOC pMalloc;
LPITEMIDLIST pidl;
BROWSEINFO bi;
memset( &bi, 0, sizeof( BROWSEINFO ) );
bi.hwndOwner = hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = (char *)pTitle;
bi.ulFlags = nFlags;
bi.lpfn = NULL;
bi.lParam = 0;
pidl = SHBrowseForFolder( &bi );
if( pidl == NULL )
return FALSE;
SHGetPathFromIDList( pidl, pFolder );
if( SHGetMalloc( &pMalloc ) != NOERROR )
return FALSE;
pMalloc->Free(pidl);
pMalloc->Release();
return TRUE;
}
- 사용 시
if( !fnBrowseFolder( hWnd, "디렉토리 또는 드라이브를 선택해주세요.",Path, BIF_RETURNONLYFSDIRS ) )
MessageBox(hWnd,"오류!",NULL,MB_OK);
Path에 선택한 파일 경로가 저장 된다.