⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 catalogdlg.cpp

📁 类似flashget下载工具代码 本来想在完善了上传的
💻 CPP
字号:
// CataLogDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyInsaneBT.h"
#include "CataLogDlg.h"
#include "NewCataLogDlg.h"
#include "DataBase.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCataLogDlg dialog


CCataLogDlg::CCataLogDlg(CWnd* pParent /*=NULL*/)
	: CPropertyPage(CCataLogDlg::IDD)
{
	//{{AFX_DATA_INIT(CCataLogDlg)
	m_CataBoxEx = NULL;
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CCataLogDlg::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCataLogDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCataLogDlg, CPropertyPage)
	//{{AFX_MSG_MAP(CCataLogDlg)
	ON_BN_CLICKED(IDC_BUTTON_CA_NEW, OnButtonCaNew)
	ON_BN_CLICKED(IDC_BUTTON_SET_PATH, OnButtonSetPath)
	ON_CBN_EDITCHANGE(IDC_COMBOBOXEX_CATALOG, OnEditchangeComboboxexCatalog)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_SETNEWTYPE,OnAddNewType)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCataLogDlg message handlers
BOOL CCataLogDlg::OnInitDialog()
{
   //下载默认目录  
   CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_DOWN_PATH_DEF);
   pEdit->SetWindowText(m_default_Path);
   
   InitComBoxEx();
   return TRUE;
}


void CCataLogDlg::GetData(CSetupRegister* pSetupRegister)
{}


void CCataLogDlg::SetData(CSetupRegister *pSetupRegister)
{
   //默认目录
   m_default_Path = pSetupRegister->m_default_Path;
   map<CString,CString>::iterator it = pSetupRegister->m_vecCatalog.begin();
   for(;it!=pSetupRegister->m_vecCatalog.end();it++)
   {
        m_catalog.insert(make_pair(it->first,it->second));
   }
 
}


bool CCataLogDlg::Apply()
{
   return true;

}

void CCataLogDlg::Clear()
{
    //先删除所有
    int count = m_CataBoxEx->GetCount();
	for(int i=0;i<=count;i++)
	    m_CataBoxEx->DeleteItem(0);
    
	if(m_imagelist.GetSafeHandle()!=NULL)
	{
	   m_imagelist.DeleteImageList();
       m_imagelist.Detach();
    }

}


void CCataLogDlg::InitComBoxEx()
{
    m_CataBoxEx = (CTypeComboBox*)GetDlgItem(IDC_COMBOBOXEX_CATALOG);
    

	
	Clear();
	CBitmap bitmap;
	BOOL r = bitmap.LoadBitmap(IDB_BITMAP_FLODE);
	BITMAP MapInfo;
	bitmap.GetBitmap(&MapInfo);
	int cx,cy;
	cx = MapInfo.bmWidth;
	cy = MapInfo.bmHeight;
    m_imagelist.Create(cx,cy,ILC_COLOR8|ILC_MASK,16,4); 
    m_imagelist.Add(&bitmap,RGB(0,0,0));
	
    m_CataBoxEx->SetImageList(&m_imagelist);

    int Index = 0;
	map<CString,CString>::iterator it = m_catalog.begin();
    for(;it!=m_catalog.end();it++)
	{
	    COMBOBOXEXITEM cbei;
        cbei.mask = CBEIF_TEXT | CBEIF_IMAGE | CBEIF_SELECTEDIMAGE;
        cbei.iItem = Index;
	    cbei.pszText = (LPTSTR)(LPCTSTR)it->first;
        cbei.iImage = 0;
        cbei.iSelectedImage =0;
        m_CataBoxEx->InsertItem(&cbei);
	    Index++;
	}
   m_CataBoxEx->SetCurSel(0);
}


//********************************************************************************** 
//** 函数名称: CCataLogDlg::OnButtonCaNew
//** 输    入: 
//** 输    出: 
//** 功能描述: 新建目录类别
//** 作    者: shuyi
//** 创建日期: 2007-7-26
//**************修改记录************************************************************ 
//** 修 改 者: shuyi
//** 修改日期: 2007-7-26
//** 修改描述: 
//** 版    本: V1.0
//********************************************************************************** 
void CCataLogDlg::OnButtonCaNew() 
{
     CNewCataLogDlg Dlg;
	 Dlg.m_CataDlg = this;
	 Dlg.DoModal();


}

void CCataLogDlg::OnAddNewType(WPARAM wParam,LPARAM lParam)
{
     LPNewType type = (LPNewType)lParam;
     CString Name = type->TypeName;
     CString Path = type->Path;
     
	 //判断该类别是否存在
	 map<CString,CString>::iterator it = m_catalog.find(Name);
	 if(it==m_catalog.end())
	 {
		 m_catalog.insert(it,make_pair(Name,Path));
		 InitComBoxEx();
		 //保存到数据库
		 //Path = Path+Name;
		 SaveType(Name,Path);

     }
	 else
	 {        
		 AfxMessageBox("该类别已存在,请重新设置");        	     
	 }
	 
}

void CCataLogDlg::SaveType(CString Name,CString Path)
{
   

	CString strConnect =CDataBase::Instance()->m_Connstring;
	//连接数据库
	if(!CDataBase::Instance()->Opendb(strConnect))
	{   
		AfxMessageBox("连接数据库失败");
        return;
	}
	//获得代理信息
    CString SQL = "SELECT * FROM catalogtab";
    //判断该纪录是否存在
	if(!Is_Path_Record(Name.GetBuffer(0)))
	{   
		//该纪录已经存在
	    return;
	}
    
	CADORecordset* pRs = new CADORecordset(&(CDataBase::Instance()->m_DBConn));
    if(!pRs->Open((LPCTSTR)SQL))
	    return;


	pRs->AddNew(); //添加一条空纪录
    pRs->SetFieldValue("Name",Name);
	pRs->SetFieldValue("catalog",Path);

	pRs->Update();
    pRs->Close();

}


void CCataLogDlg::OnButtonSetPath() 
{
	
	  BROWSEINFO   bi; //BROWSEINFO结构体   
	  TCHAR   Buffer[512]="";   
	  TCHAR   FullPath[512]="";   
	  bi.hwndOwner   =   m_hWnd; //m_hWnd你的程序主窗口   
	  bi.pidlRoot   =   NULL;   
	  bi.pszDisplayName   =   Buffer; //返回选择的目录名的缓冲区   
	  bi.lpszTitle   =   "新建类别路径"; //弹出的窗口的文字提示   
	  bi.ulFlags   =   BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ; //只返回目录。其他标志看MSDN   
	  bi.lpfn   =   NULL; 
	  bi.lParam   =   0;   
	  bi.iImage   =   0;   
	  ITEMIDLIST* pidl = ::SHBrowseForFolder(&bi); //显示弹出窗口,ITEMIDLIST很重要   
	  if(::SHGetPathFromIDList(pidl,FullPath)) //在ITEMIDLIST中得到目录名的整个路径   
	  {   
		//成功   
		CString FsPath = FullPath;
		CEdit*  pEdit = (CEdit*)GetDlgItem(IDC_EDIT_DOWN_PATH_DEF);
        pEdit->SetWindowText(FsPath);
	  }   
}



//判断下载路局是否存在数据库中
bool CCataLogDlg::Is_Path_Record(const char* name)
{
        CString sUrl = name;
		CString strConnect =CDataBase::Instance()->m_Connstring;
		//连接数据库
		if(!CDataBase::Instance()->Opendb(strConnect))
		{   
			AfxMessageBox("连接数据库失败");
			return false;
		}
		//获得代理信息
   
		CString SQL;
		SQL.Format("SELECT * FROM catalogtab WHERE Name =\"%s\"",sUrl);
		CADORecordset* pRs = new CADORecordset(&(CDataBase::Instance()->m_DBConn));
		if(!pRs->Open((LPCTSTR)SQL))
			return false;

		if(pRs->IsEof())
			return true;
			return false;

}


void CCataLogDlg::OnEditchangeComboboxexCatalog() 
{

	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -