다음과 같이 폴더선택 대화상자를 띄우고 경로를 얻어오는 방법을 알아보자

//OnButton7()을 클릭하여 위의 대화상자를 띄워 경로얻기
void CDBToQuestionCardTestDlg::OnButton7()
{
LPITEMIDLIST lpIList;
char tmp[128] = { 0, };
BROWSEINFO lpBi;
char szPath[_MAX_PATH] ={0,};
HWND hWnd = AfxGetApp()->GetMainWnd()->m_hWnd;
CString sText = _T("디렉토리를 선택해 주세요.");
lpBi.pszDisplayName = tmp;
lpBi.hwndOwner = hWnd;
lpBi.pidlRoot = NULL;
lpBi.lpszTitle = sText;
lpBi.ulFlags = BIF_RETURNONLYFSDIRS | 0x40;
lpBi.lpfn = NULL;
lpBi.lParam = 0;
lpIList = SHBrowseForFolder(&lpBi);
if (!lpIList)
return;
SHGetPathFromIDList(lpIList, szPath);
CString sPath;
sPath.Format("%s", szPath);
if (0 != strcmp(sPath.Right(1), "\"))
sPath.Format("%s\", szPath);
//sPath 에..원하는 경로가 들어있다.
}









덧글
김아순 2009/08/09 21:03 # 삭제 답글
늘 잘보고 있습니다.한가지 알고 싶은것이 있는데요.
다이어로그기반으로한 프로그램에서 기본 다이어로그화면의 일부를 팝업화면이 아닌 서로 다른 화면으로
번갈아가며 바꾸고 싶은데 가능한 것인지요.(MDI, SDI에서 화면을 지우고 그자리에 다른 화면을 넣을 수 있는
프로그램기능과 동일한 기능을 다이어로그를 기반으로하는 프로그램에서 사용하려고 함).