gusucode.com > VC_C++源码,界面编程,网页爬虫源码程序 > VC_C++源码,界面编程,网页爬虫源码程序/code/webpageloader_SourceCode/FileProp.cpp
// FileProp.cpp : implementation file // #include "stdafx.h" #include "WebPageLoader.h" #include "FileProp.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFileProp property page IMPLEMENT_DYNCREATE(CFileProp, CPropertyPage) CFileProp::CFileProp() : CPropertyPage(CFileProp::IDD) { ASSERT(FALSE); } CFileProp::CFileProp(CSession *pSession) : CPropertyPage(CFileProp::IDD) { ASSERT_VALID(pSession); m_pSession = pSession; //{{AFX_DATA_INIT(CFileProp) m_Duplicates = m_pSession->m_Settings.m_Duplicates; m_sExtensions = m_pSession->m_Settings.m_sFileExtensions; m_sFileNameFilter = m_pSession->m_Settings.m_sFileNameFilter; m_sExcludeFilter = m_pSession->m_Settings.m_sExcludeFilter; m_iFileSizeFilter = m_pSession->m_Settings.m_iFileSizeFilter; m_bFilterName = m_pSession->m_Settings.m_bUseFileNameFilter; m_bExcludeFilter = m_pSession->m_Settings.m_bUseExcludeFilter; m_bFilterSize = m_pSession->m_Settings.m_bUseFileSizeFilter; if( m_pSession->m_Settings.m_bPrefixRename ) m_iPrefix = 0; else m_iPrefix = 1; m_bSkipBanners = m_pSession->m_Settings.m_bSkipBanners; m_bSkipReoccouring = m_pSession->m_Settings.m_bPreventRepeating; //}}AFX_DATA_INIT } CFileProp::~CFileProp() { } void CFileProp::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFileProp) DDX_Control(pDX, IDC_PREFIX, m_ctlPrefix); DDX_Control(pDX, IDC_FILESIZEFILTER, m_ctlFilesizeFilter); DDX_Control(pDX, IDC_FILENAMEFILTER, m_ctlFilenameFilter); DDX_Control(pDX, IDC_EXCLUDEFILTERSTRING, m_ctlExcludeFilter); DDX_CBIndex(pDX, IDC_DUPLICATES, m_Duplicates); DDX_Text(pDX, IDC_EXTENSIONS, m_sExtensions); DDV_MaxChars(pDX, m_sExtensions, 256); DDX_Text(pDX, IDC_FILESIZEFILTER, m_iFileSizeFilter); DDX_Text(pDX, IDC_FILENAMEFILTER, m_sFileNameFilter); DDX_Text(pDX, IDC_EXCLUDEFILTERSTRING, m_sExcludeFilter); DDV_MinMaxInt(pDX, m_iFileSizeFilter, 1, 500); DDX_Check(pDX, IDC_FILTERSIZE, m_bFilterSize); DDX_Check(pDX, IDC_FILTERNAME, m_bFilterName); DDX_Check(pDX, IDC_EXCLUDEFILTER, m_bExcludeFilter); DDX_CBIndex(pDX, IDC_PREFIX, m_iPrefix); DDX_Check(pDX, IDC_SKIPBANNERS, m_bSkipBanners); DDX_Check(pDX, IDC_SKIPREOCCOURING, m_bSkipReoccouring); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFileProp, CPropertyPage) //{{AFX_MSG_MAP(CFileProp) ON_BN_CLICKED(IDC_FILTERNAME, OnFilterName) ON_BN_CLICKED(IDC_FILTERSIZE, OnFilterSize) ON_BN_CLICKED(IDC_EXCLUDEFILTER, OnExcludeFilter) ON_CBN_SELCHANGE(IDC_DUPLICATES, OnSelChangeDuplicates) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFileProp message handlers void CFileProp::OnOK() { ASSERT_VALID(m_pSession); CSingleLock lock( *m_pSession, TRUE ); m_pSession->m_Settings.m_Duplicates = (Duplicate)m_Duplicates; m_pSession->m_Settings.m_sFileExtensions = m_sExtensions; m_pSession->m_Settings.m_sFileNameFilter = m_sFileNameFilter; m_pSession->m_Settings.m_sExcludeFilter = m_sExcludeFilter; m_pSession->m_Settings.m_iFileSizeFilter = m_iFileSizeFilter; m_pSession->m_Settings.m_bUseFileNameFilter = m_bFilterName; m_pSession->m_Settings.m_bUseFileSizeFilter = m_bFilterSize; m_pSession->m_Settings.m_bUseExcludeFilter = m_bExcludeFilter; m_pSession->m_Settings.m_bPrefixRename = (m_iPrefix==0); m_pSession->m_Settings.m_bSkipBanners = m_bSkipBanners; m_pSession->m_Settings.m_bPreventRepeating = m_bSkipReoccouring; CPropertyPage::OnOK(); } BOOL CFileProp::OnKillActive() { if( UpdateData()==FALSE ) return FALSE; if( m_sExtensions.FindOneOf(_T("*?:\\.\"|"))>=0 ) { AfxMessageBox(IDS_ERR_EXTENSIONS); return FALSE; }; return CPropertyPage::OnKillActive(); } void CFileProp::OnFilterName() { UpdateData(); m_ctlFilenameFilter.EnableWindow(m_bFilterName); } void CFileProp::OnExcludeFilter() { UpdateData(); m_ctlExcludeFilter.EnableWindow(m_bExcludeFilter); } void CFileProp::OnFilterSize() { UpdateData(); m_ctlFilesizeFilter.EnableWindow(m_bFilterSize); } BOOL CFileProp::OnInitDialog() { CPropertyPage::OnInitDialog(); if( m_bFilterName ) OnFilterName(); if( m_bExcludeFilter ) OnExcludeFilter(); if( m_bFilterSize ) OnFilterSize(); OnSelChangeDuplicates(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CFileProp::OnSelChangeDuplicates() { UpdateData(); m_ctlPrefix.ShowWindow(m_Duplicates==(int)DUP_RENAME ? SW_SHOW : SW_HIDE); }