MFC/Microsoft Foundation Class 2011. 2. 10. 14:12

MFC에서는 FolderBrowserDialog가 지원되지 않아서 직접 만들어야 한다.

[BROWSEINFO 구조체]

typedef struct _browseinfo { 
    HWND hwndOwner; 
    LPCITEMIDLIST pidlRoot; 
    LPSTR pszDisplayName; 
    LPCSTR lpszTitle; 
    UINT ulFlags; 
    BFFCALLBACK lpfn; 
    LPARAM lParam; 
    int iImage; 
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO; 

hwndOwner  : 다이얼로그 박스의 부모 윈도우의 핸들

pidlRoot브라우저에서부터 루트 폴더 위치 지정하는 ITEMIDLIST 구조 주소 찾아볼 수 있습니다.
오직 지정된 폴더 하위 폴더 대화 상자에 나타납니다.
이 멤버는 NULL이 될 수 있습니다. 이 경우, 네임 스페이스 루트 (바탕 화면 폴더) 사용됩니다

pszDisplayName : 버퍼 주소 사용자가 선택한 폴더 표시 이름을 보여줍니다.
버퍼 크기 MAX_PATH 바이트 간주됩니다.

lpszTitle : 다이얼로그의 트리뷰 컨트롤에서 Null종료 문자열의 주소를 보여줍니다
이 문자열은 사용자에게 일일이 가르쳐주는데 사용할 수 있습니다.

ulFlags : 대화 상자에 대한 옵션 지정하는 플래그.
  멤버 제로값이거나  다음 의 조합 포함할 수 있습니다

BIF_BROWSEFORCOMPUTER 컴퓨터만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화
BIF_BROWSEFORPRINTER 프린터만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화
BIF_BROWSEINCLUDEFILES 이browse dialog는 폴더 뿐만이 아니라 파일도 보여줍니다
BIF_DONTGOBELOWDOMAIN 트리 컨트롤 뷰에서 도메인 레벨 아래의 네트워크 폴더를 포함하지 않습니다
BIF_EDITBOX Version 4.71. The browse dialog includes an edit control in which the user can type the name of an item.
BIF_RETURNFSANCESTORS Only return file system ancestors. If the user selects anything other than a file system ancestor, the OK button is grayed.
BIF_RETURNONLYFSDIRS 시스템 디렉토리만 리턴합니다. 다른것을 선택하면 OK버튼이 비활성화
BIF_STATUSTEXT Include a status area in the dialog box. The callback function can set the status text by sending messages to the dialog box.
BIF_VALIDATE Version 4.71. If the user types an invalid name into the edit box, the browse dialog will call the application's BrowseCallbackProc with the BFFM_VALIDATEFAILED message. This flag is ignored if BIF_EDITBOX is not specified.
 lpfn : 응용프로램 정의 함수의 주소는 대화상자 이벤트가 발생할 때 호출합니다 자세한 내용은 BrowseCallbackProc기능을 참조하십시오. 이 멤버는 NULL이 될 수 있습니다.

lParam : 하나를 지정하면 응용프로갬 정의 값이 대화상자의 콜백함수로 전달합니다.
iImage : 변수에 선택한 폴더에 관련된 이미지를 받을 수 있습니다.
이미지가 시스템 이미지 목록 인덱스로 지정됩니다.
: