www.pudn.com > clking_src.rar > GuiFDir.cpp


//-----------------------------------------------------------------------// 
// This is a part of the GuiLib MFC Extention.							 //	 
// Autor  :  Francisco Campos											 // 
// (C) 2002 Francisco Campos  All rights reserved     // 
// This code is provided "as is", with absolutely no warranty expressed  // 
// or implied. Any use is at your own risk.								 //		 
// You must obtain the author's consent before you can include this code // 
// in a software library.												 // 
// If the source code in  this file is used in any application			 // 
// then acknowledgement must be made to the author of this program		 //	 
// fcampos@tutopia.com													 // 
//-----------------------------------------------------------------------// 
 
#include "stdafx.h" 
#include "GuiFDir.h" 
#include       
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CFDir 
 
#define ID_BUTTONOK  200 
#define IDEDIT		 201 
 
IMPLEMENT_DYNAMIC(CGuiFDir, CFileDialog) 
 
CGuiFDir::CGuiFDir(CWnd* parent) 
:CFileDialog(TRUE, NULL,"*..*",  
             OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST, 
             NULL, parent) 
{ 
    m_ofn.lpstrTitle = _T("Select Folder"); 
	m_ofn.lpstrFilter =_T("Directory"); 
	 
	 
} 
 
 
BEGIN_MESSAGE_MAP(CFWnd, CWnd) 
        //ON_BN_CLICKED(ID_BUTTONOK, OnOpen) 
		ON_BN_CLICKED(IDOK, OnOpen) 
END_MESSAGE_MAP() 
 
 
BEGIN_MESSAGE_MAP(CGuiFDir,CFileDialog) 
	//{{AFX_MSG_MAP(CFDir) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
 
void CFWnd::OnOpen() 
{ 
	CString m_GetPath; 
	GetDlgItem(IDEDIT)->GetWindowText(m_GetPath); 
	DWORD attr = GetFileAttributes((LPCTSTR)m_GetPath); 
    if (attr != 0xFFFFFFFF && (attr & FILE_ATTRIBUTE_DIRECTORY) != 0) 
     { 
		::EndDialog(m_hWnd, IDOK); 
     } 
	  
} 
void CGuiFDir::OnInitDone() 
{ 
	CRect rc; 
	CRect rcCancel; 
	CRect rclst; 
	CString m_Caption; 
	VERIFY(cw=GetParent()); 
	VERIFY(cfwn.SubclassWindow(cw->m_hWnd)); 
	cw->GetDlgItem(stc3)->SetWindowText(_T("Folder:")); 
	cw->GetDlgItem(stc2)->SetWindowText(_T("Selection type:")); 
    cw->GetDlgItem(edt1)->GetWindowRect(rc); 
	cw->ScreenToClient(rc); 
	m_cedit.Create(WS_TABSTOP | WS_VISIBLE | WS_CHILD,rc,cw,IDEDIT); 
	m_cedit.SetWindowPos(this,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE); 
	m_cedit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME); 
	m_cedit.SetWindowText(m_ofn.lpstrInitialDir); 
	m_cedit.SetFont(cw->GetDlgItem(edt1)->GetFont()); 
	HideControl(edt1); 
	CFileDialog::OnInitDone(); 
	 
} 
 
void CGuiFDir::OnFolderChange() 
{ 
	m_GetPath=GetFolderPath(); 
	m_cedit.SetWindowText(m_GetPath); 
	CFileDialog::OnFolderChange(); 
}