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

📄 zipprjfolderdlg.cpp

📁 TabBars的开源源码
💻 CPP
字号:
// ZipPrjFolderDlg.cpp : implementation file
/*********************************************************************
*	Author:		orbit
*	Date:		2003-7-30
*	Contact us:	support@winmsg.com
*	Web Page: http://www.winmsg.com/cn/orbit.htm (for Chinese version)
*						http://www.winmsg.com/orbit.htm (for English version)
**********************************************************************/

#include "stdafx.h"
#include "tabbars.h"
#include "ZipPrjFolderDlg.h"
#include "Common\DirDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CZipPrjFolderDlg dialog


CZipPrjFolderDlg::CZipPrjFolderDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CZipPrjFolderDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CZipPrjFolderDlg)
	m_nzipSrc = 0;
	//}}AFX_DATA_INIT
}


void CZipPrjFolderDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CZipPrjFolderDlg)
	DDX_Radio(pDX, IDC_RAD_WORKSPACE, m_nzipSrc);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CZipPrjFolderDlg, CDialog)
	//{{AFX_MSG_MAP(CZipPrjFolderDlg)
	ON_BN_CLICKED(IDC_BTN_SELECT_SRC, OnBtnSelectSrc)
	ON_BN_CLICKED(IDC_RAD_WORKSPACE, OnRadWorkspace)
	ON_BN_CLICKED(IDC_RAD_FOLDER, OnRadFolder)
	ON_BN_CLICKED(IDC_BTN_OUTFILE, OnBtnOutfile)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CZipPrjFolderDlg message handlers

void CZipPrjFolderDlg::OnBtnSelectSrc() 
{
	CDirDialog dlg;
	
	CString strTmp;
	GetDlgItemText(IDC_EDIT_SRC_PATH,strTmp);
#ifdef _VER_CHINESE
	if(dlg.DoBrowse(this,_T("选择文件源目录"),lpszNull,strTmp) == 1)
#else
	if(dlg.DoBrowse(this,_T("Select Folder to zip"),lpszNull,strTmp) == 1)
#endif
	{
		CString strFolder = dlg.m_strPath;
		SetDlgItemText(IDC_EDIT_SRC_PATH,strFolder);
		UpdateData(TRUE);
		if(m_nzipSrc == 1)//zip folder
		{
			int idx = strFolder.ReverseFind(_T('\\'));
			strFolder = strFolder.Mid(idx + 1);

			CString strOutPutFile;
			GetDlgItemText(IDC_EDIT_ZIPOUTFILE,strOutPutFile);
			idx = strOutPutFile.ReverseFind(_T('\\'));
			if(idx != -1)
			{
				strOutPutFile = strOutPutFile.Left(idx + 1);//include last '\'
				strOutPutFile += (strFolder + _T(".zip"));
			}
			else
			{
				strOutPutFile = strFolder + _T(".zip");
			}
			SetDlgItemText(IDC_EDIT_ZIPOUTFILE,strOutPutFile);
		}
	}
}

void CZipPrjFolderDlg::OnRadWorkspace() 
{
	GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(FALSE);
	GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(FALSE);
	SetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
	int idx = m_strSrcFolder.ReverseFind(_T('\\'));
	ASSERT(idx != -1);
	CString strDswName = m_strSrcFolder.Mid(idx + 1);
	CString strTmp;
	GetDlgItemText(IDC_EDIT_ZIPOUTFILE,strTmp);
	idx = strTmp.ReverseFind(_T('\\'));
	if(idx != -1)
	{
		strTmp = strTmp.Left(idx + 1);
	}

	strTmp += (strDswName + _T(".zip"));
	SetDlgItemText(IDC_EDIT_ZIPOUTFILE,strTmp);
}

void CZipPrjFolderDlg::OnRadFolder() 
{
	GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(TRUE);
	GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(TRUE);
}

void CZipPrjFolderDlg::OnOK() 
{
	GetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
	GetDlgItemText(IDC_EDIT_FILETYPE,m_strFileType);
	GetDlgItemText(IDC_EDIT_ZIPOUTFILE,m_strOutputZipFile);

	if(GetFileAttributes(m_strSrcFolder) == 0xffffffff)//not exist
	{
		CString strTmp;
#ifdef _VER_CHINESE
		strTmp.Format(_T("目录 %s \r\n不存在或者没有访问权限!"),m_strSrcFolder);
#else
		strTmp.Format(_T("The folder '%s' \r\nis not exist or you have not enough right to access"),m_strSrcFolder);
#endif
		AfxMessageBox(strTmp);
		return;
	}

	CDialog::OnOK();
}

void CZipPrjFolderDlg::OnBtnOutfile() 
{
	TCHAR szOutFile[_MAX_PATH];
	GetDlgItemText(IDC_EDIT_ZIPOUTFILE,szOutFile,_MAX_PATH);
	CFileDialog dialog(FALSE, "zip", NULL, OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_CREATEPROMPT , "Zip Files (*.zip)|*.zip||");
#ifdef _VER_CHINESE
	dialog.m_ofn.lpstrTitle = "保存输出的Zip文件";
#else
	dialog.m_ofn.lpstrTitle = "Save zip file";
#endif
	dialog.m_ofn.lpstrFile = szOutFile;

	if(dialog.DoModal() == IDOK)
	{
		SetDlgItemText(IDC_EDIT_ZIPOUTFILE,dialog.GetPathName());
	}	
}

BOOL CZipPrjFolderDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if(m_nzipSrc == 0)
	{
		GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(FALSE);
		GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(FALSE);
	}
	else//spec it not open workspace,so disadle workspace radio
	{
		GetDlgItem(IDC_RAD_WORKSPACE)->EnableWindow(FALSE);
	}
	SetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
	SetDlgItemText(IDC_EDIT_FILETYPE,m_strFileType);
	SetDlgItemText(IDC_EDIT_ZIPOUTFILE,m_strOutputZipFile);

	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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