파일 경로 찾기 디렉토리에서 내가 설정한 디렉토리로 설정창이 뜨도록 할 수 있다.
먼저 CallBack 함수 등록...
//헤더..
// File Browser
static int CALLBACK BrowseProc( HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM pData ) ;
//CPP
int CALLBACK CDHG2000View::BrowseProc( HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM pData )
{
UNUSED_ALWAYS( pData ) ;
TCHAR szPath[MAX_PATH] ;
switch( uMsg )
{
case BFFM_INITIALIZED :
::SendMessage(hWnd, BFFM_SETSELECTION, TRUE, (LPARAM)(LPCTSTR)g_pMainFrame->m_strRTPFilePath);
break;
case BFFM_SELCHANGED :
if( ::SHGetPathFromIDList((LPITEMIDLIST)lParam, szPath) )
::SendMessage(hWnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szPath);
break;
default :
break;
}
return 0 ;
}
이제는 버튼으로 파일 다이얼로그를 오픈하는 소스를 추가한다.
// RTP File Open
void CDHG2000View::OnBnClickedButtonRTPFileOpen()
{
LPITEMIDLIST pidl = NULL ;
BROWSEINFO bi ;
ZeroMemory(&bi, sizeof(BROWSEINFO)) ;
bi.hwndOwner = this->GetSafeHwnd() ;
bi.pidlRoot = NULL ;
bi.lpfn = BrowseProc ;
bi.lParam = NULL ;
//bi.lpszTitle = _T("Select RTP File Folder") ;
//bi.ulFlags = BIF_BROWSEINCLUDEFILES /*| BIF_EDITBOX */| BIF_VALIDATE | BIF_STATUSTEXT;
pidl = SHBrowseForFolder(&bi) ;
if ( pidl == NULL )
return ;
TCHAR szPath[MAX_PATH] = {0} ;
SHGetPathFromIDList(pidl, szPath) ;
//// 이 부분은 선택된 경로를 얻어와서 다른 작업을 처리한다.
// File Path Save = 선택된 경로
g_pMainFrame->m_strRTPFilePath = szPath ;
CDHG2000Doc* pDoc = GetDocument() ;
pDoc->OpenFileRTP() ;
}
'Programming > MFC' 카테고리의 다른 글
메뉴의 단축기 만들기 (0) | 2007.02.01 |
---|---|
윈도우 핸들을 얻어서 강제로 종료시키기 (0) | 2007.02.01 |
Windows 시스템레벨 개발자에게 도움이 되는 사이트 (0) | 2007.01.02 |
GetLastError code (0) | 2006.12.14 |
하이퍼링크 걸기 (0) | 2006.12.01 |