Programming/C Win32 MFC2011. 10. 22. 20:55
가끔보면 폴더만 선택이 가능한 다이얼로그가 있는데
CFileDialog에 옵션줘서 하는줄 알았더니 -_-
SHBrowseForFolder() 라는 Win32API를 이용하는 것이었다!


void CtracerDlg::OnBnClickedButton1()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	ITEMIDLIST*  pildBrowse;
	TCHAR   pszPathname[MAX_PATH];
	BROWSEINFO  bInfo;
	memset(&bInfo, 0, sizeof(bInfo));
	bInfo.hwndOwner   = GetSafeHwnd();
	bInfo.pidlRoot   = NULL;
	bInfo.pszDisplayName = pszPathname;
	bInfo.lpszTitle   = _T("디렉토리를 선택하세요");
	bInfo.ulFlags   = BIF_RETURNONLYFSDIRS; 
	bInfo.lpfn    = NULL;
	bInfo.lParam  = (LPARAM)(LPCTSTR)"C:\\";
	bInfo.lParam  = (LPARAM)NULL;
	pildBrowse    = ::SHBrowseForFolder(&bInfo);
	if(pildBrowse)
	{
		SHGetPathFromIDList(pildBrowse, pszPathname);
		m_editPath.SetWindowTextW(pszPathname);
	}

}

[링크 : http://jeylee1031.tistory.com/entry/MFC-폴더-dialog-띄우기]
[링크 : http://softk.tistory.com/entry/SHBrowseForFolder-UI를-수정하자]
[링크 : http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115(v=vs.85).aspx]

'Programming > C Win32 MFC' 카테고리의 다른 글

윈도우에서 사용할 임시파일이름 만들기  (0) 2011.10.24
CFileFind Class  (0) 2011.10.23
ctime()  (2) 2011.07.06
선언과 정의(Declaration & Definition)  (10) 2010.10.04
ini 파일 내용 파싱하기  (2) 2010.09.27
Posted by 구차니