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. |
lParam : 하나를 지정하면 응용프로갬 정의 값이 대화상자의 콜백함수로 전달합니다.
iImage : 변수에 선택한 폴더에 관련된 이미지를 받을 수 있습니다.
'MFC > Microsoft Foundation Class' 카테고리의 다른 글
[MFC] 파일 다이얼로그 - 3 <BROWSEINFO사용> (0) | 2011.02.10 |
---|---|
[MFC] 폴더 다이얼로그 - 2 <SHBrowseForFolder> (0) | 2011.02.10 |
대표적인 소켓 에러 (0) | 2011.02.08 |
[MFC] 가변인수 - va_list (0) | 2011.02.07 |
[MFC] SENDMESSAGE 로 문자열 보내기 (0) | 2011.02.07 |