亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testzipdlgdlg.cpp

?? 一個不錯的自制解壓縮程序
?? CPP
字號:
// TestZipDlgDlg.cpp : implementation file
///////////////////////////////////////////////////////////////
//   Copyright (C) 2000 Tadeusz Dracz
///////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "TestZipDlg.h"
#include "TestZipDlgDlg.h"
#include "OptionsDlg.h"
#include "BrowseForFolder.h"
#include "AboutDlg.h"
#include "CommentDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTestZipDlgDlg dialog

CTestZipDlgDlg::CTestZipDlgDlg(CWnd* pParent /*=NULL*/)
	: CResizableDialog(CTestZipDlgDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTestZipDlgDlg)
	m_szComment = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTestZipDlgDlg::DoDataExchange(CDataExchange* pDX)
{
	CResizableDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTestZipDlgDlg)
	DDX_Control(pDX, IDC_CONTENTS, m_files);
	DDX_Text(pDX, IDC_EDIT1, m_szComment);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTestZipDlgDlg, CResizableDialog)
	//{{AFX_MSG_MAP(CTestZipDlgDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_DESTROY()
	ON_COMMAND(ID_ACTION_ADD_FILES, OnActionAddFiles)
	ON_COMMAND(ID_ACTION_ADD_FOLODER, OnActionAddFoloder)
	ON_COMMAND(ID_ACTION_DELETE, OnActionDelete)
	ON_COMMAND(ID_ACTION_EXTRACT, OnActionExtract)
	ON_COMMAND(ID_ARCHIVE_CLOSE, OnArchiveClose)
	ON_COMMAND(ID_ARCHIVE_EXIT, OnArchiveExit)
	ON_COMMAND(ID_ARCHIVE_NEW, OnArchiveNew)
	ON_COMMAND(ID_ARCHIVE_OPEN, OnArchiveOpen)
	ON_COMMAND(ID_ARCHIVE_OPTIONS, OnArchiveOptions)
	ON_COMMAND(ID_HELP_ABOUT, OnHelpAbout)
	ON_UPDATE_COMMAND_UI(ID_ACTION_ADD_FILES, OnUpdateActionAdd)
	ON_UPDATE_COMMAND_UI(ID_ACTION_DELETE, OnUpdateActionDelete)
	ON_UPDATE_COMMAND_UI(ID_ACTION_EXTRACT, OnUpdateActionExtract)
	ON_UPDATE_COMMAND_UI(ID_ARCHIVE_CLOSE, OnUpdateArchiveClose)
	ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
	ON_NOTIFY(NM_DBLCLK, IDC_CONTENTS, OnDblclkContents)
	ON_UPDATE_COMMAND_UI(ID_ACTION_ADD_FOLODER, OnUpdateActionAdd)
	ON_WM_INITMENU()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestZipDlgDlg message handlers

BOOL CTestZipDlgDlg::OnInitDialog()
{
	m_zip.SetSpanCallback(ChangeDisk, this);
	m_zip.SetAdvanced(1500000);
	if (!m_options.m_reg.Load())
		m_options.SetDefaults();

	CResizableDialog::OnInitDialog();
	UpdateDialogControls(this, FALSE);

	m_files.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_files.InsertColumn(0, IDS_COL1);
	m_files.InsertColumn(1, IDS_COL2);
	m_files.InsertColumn(2, IDS_COL3, LVCFMT_RIGHT);
	m_files.InsertColumn(3, IDS_COL4);
	m_files.InsertColumn(4, IDS_COL6);
	m_files.InsertColumn(5, IDS_COL7);
	m_files.InsertColumn(6, IDS_COL5, LVCFMT_RIGHT);
	m_files.InsertColumn(7, IDS_COL8);
	m_files.UpdateColumnWidths();
	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	AddAnchor(IDC_EDIT1, MIDDLE_LEFT, BOTTOM_RIGHT);
	AddAnchor(IDC_COMM_TXT, MIDDLE_LEFT, BOTTOM_RIGHT);
	AddAnchor(IDC_CONTENTS, TOP_LEFT, MIDDLE_RIGHT);
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CTestZipDlgDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CResizableDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTestZipDlgDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

bool CTestZipDlgDlg::GetFileName(CString &szFile, bool bOpen)
{
	CFileDialog fd(bOpen, "zip", bOpen ? NULL : "archive", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Zip Files (*.zip)|*.zip|All Files (*.*)|*.*||");
	if (fd.DoModal() != IDOK)
		return false;
	szFile = fd.GetPathName();
	return true;
}

void CTestZipDlgDlg::Redisplay()
{
	DisplayLabel();
	m_files.DeleteAllItems();
	for (int i = 0; i < m_zip.GetNoEntries(); i++)
	{
		CFileHeader fh;
		m_zip.GetFileInfo(fh, (WORD)i);
		int iItem = m_files.GetItemCount();
		m_files.InsertItem(iItem, fh.m_szFileName);
		m_files.SetItemText(iItem, 1, m_zip.IsFileDirectory((WORD)i) ? "YES" : "NO");
		CString sz;
		sz.Format("%d", fh.m_uUncomprSize);
		m_files.SetItemText(iItem, 2, sz);
		m_files.SetItemText(iItem, 3, fh.GetTime().FormatGmt("%d %b %Y, %X"));
		sz = fh.m_uExternalAttr & FILE_ATTRIBUTE_READONLY ? 'r' : '-';
		sz += fh.m_uExternalAttr & FILE_ATTRIBUTE_ARCHIVE ? 'a' : '-';
		sz += fh.m_uExternalAttr & FILE_ATTRIBUTE_HIDDEN ? 'h' : '-';
		sz += fh.m_uExternalAttr & FILE_ATTRIBUTE_SYSTEM ? 's' : '-';
		m_files.SetItemText(iItem, 4, sz);
		sz.Format("%d%%", fh.m_uUncomprSize ? fh.m_uComprSize * 100 / fh.m_uUncomprSize : 0);
		m_files.SetItemText(iItem, 5, sz);
		sz.Format("%lu", fh.m_uCrc32);
		m_files.SetItemText(iItem, 6, sz);
		sz = (fh.m_szComment.GetLength() > 1024) ? fh.m_szComment.Left(1024) +"..." : fh.m_szComment;
		m_files.SetItemText(iItem, 7, sz);
	}
	m_files.UpdateColumnWidths();
}

void CTestZipDlgDlg::OnDestroy() 
{
	OnArchiveClose();
	CResizableDialog::OnDestroy();
}

bool CTestZipDlgDlg::ChangeDisk(int iNumber, int iCode, void* pData)
{
	CTestZipDlgDlg* p = (CTestZipDlgDlg*)pData;
	p->DisplayLabel();
	CString sz;
	sz.Format("Insert disk number %d.", iNumber);
	return AfxMessageBox(sz, MB_OKCANCEL) == IDOK;
}

void CTestZipDlgDlg::DisplayLabel()
{
	SetWindowText(m_zip.GetArchivePath().IsEmpty() ? "Zip" : m_zip.GetArchivePath());
}


void CTestZipDlgDlg::AddFolder(CString szFolder)
{
	szFolder.TrimRight("\\");
	CFileFind ff;
	BOOL b = ff.FindFile(szFolder + "\\*");
	CStringArray folders;
	while (b)
	{
		b = ff.FindNextFile();
		if (ff.IsDots())
			continue;
		if (ff.IsDirectory())
		{
			if  (!m_options.m_bRecurse)
				continue;
			folders.Add(ff.GetFilePath());
		}
		else
			m_zip.AddNewFile(ff.GetFilePath(),m_options.m_iLevel);

	}
	for (int i = 0; i < folders.GetSize(); i++)
	{
		m_zip.AddNewFile(folders[i]); // add the folder before adding its files
												// it is not needed to add the root folder
		AddFolder(folders[i]);
	}
}

void CTestZipDlgDlg::OnActionAddFiles() 
{
	CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "All Files (*.*)|*.*||");
	fd.m_ofn.Flags |= OFN_ALLOWMULTISELECT;
	if (fd.DoModal() != IDOK)
		return;
	POSITION p = fd.GetStartPosition();
	while (p)
		m_zip.AddNewFile(fd.GetNextPathName(p), m_options.m_iLevel);
	Redisplay();
	
}

void CTestZipDlgDlg::OnActionAddFoloder() 
{
	CBrowseForFolder bf;	
	bf.hWndOwner = this->m_hWnd;
	bf.strTitle = "Select directory to add to the archive";
	CString sz;
	if (!bf.GetFolder(sz))
		return;
	AddFolder(sz);
	Redisplay();	
	
}

void CTestZipDlgDlg::OnActionDelete() 
{
	CDWordArray da;
	m_files.BuildSelectedArray(da);
	CWordArray wa;
	for (int i = 0; i < da.GetSize(); i++)
		wa.Add((WORD)da[i]);

	m_zip.DeleteFiles(wa);
	Redisplay();	
	
}

void CTestZipDlgDlg::OnActionExtract() 
{
	CBrowseForFolder bf;	
	bf.hWndOwner = this->m_hWnd;
	bf.strTitle = "Select directory to extract files";
	CString sz;
	if (!bf.GetFolder(sz))
		return;
	CDWordArray da;
	m_files.BuildSelectedArray(da);
	for (int i = 0; i < da.GetSize(); i++)
		m_zip.ExtractFile((WORD)da[i], sz);
	
}

void CTestZipDlgDlg::OnArchiveClose() 
{
	if (m_bCommentModified)
	{
		UpdateData();
		m_zip.SetGlobalComment(m_szComment);
		m_bCommentModified = false;
	}
	m_zip.Close();	
	GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
	m_szComment.Empty();
	UpdateData(FALSE);

	Redisplay();
	
}

void CTestZipDlgDlg::OnArchiveExit() 
{
	EndDialog(IDOK);
	
}

void CTestZipDlgDlg::OnArchiveNew() 
{
	CString sz;
	if (!GetFileName(sz, false))
		return;
	OnArchiveClose();

	m_bCommentModified = false;
	m_szComment.Empty();
	UpdateData(FALSE);
	GetDlgItem(IDC_EDIT1)->EnableWindow();

	m_zip.Open(sz, m_options.m_iSpan == 0 ? CZipArchive::create : CZipArchive::createSpan,
		m_options.m_iSpan == 1 ? 0 : m_options.m_uVolumeSize);
	Redisplay();
	
}

void CTestZipDlgDlg::OnArchiveOpen() 
{
	CString sz;
	if (!GetFileName(sz, true))
		return;
	OnArchiveClose();

	m_zip.Open(sz, CZipArchive::open, m_options.m_bTdComp ? 1 : 0 );

	m_bCommentModified = false;
	m_szComment = m_zip.GetGlobalComment();
	UpdateData(FALSE);
	if (!m_zip.GetSpanMode())
		GetDlgItem(IDC_EDIT1)->EnableWindow();

	Redisplay();

	
}

void CTestZipDlgDlg::OnArchiveOptions() 
{
	COptionsDlg dlg;
	dlg.m_pOptions = &m_options;
	dlg.DoModal();
	
}

void CTestZipDlgDlg::OnHelpAbout() 
{
	CAboutDlg dlg;
	dlg.DoModal();
	
}

void CTestZipDlgDlg::OnUpdateActionAdd(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_zip.IsClosed() && (m_zip.GetSpanMode() >= 0));
}

void CTestZipDlgDlg::OnUpdateActionDelete(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_zip.IsClosed() && !m_zip.GetSpanMode() && m_files.GetSelectedCount());
	
}

void CTestZipDlgDlg::OnUpdateActionExtract(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_zip.IsClosed() && (m_zip.GetSpanMode() <= 0)&& m_files.GetSelectedCount());
	
}

void CTestZipDlgDlg::OnUpdateArchiveClose(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_zip.IsClosed());
	
}

void CTestZipDlgDlg::OnChangeEdit1() 
{
	m_bCommentModified = true;	
}

void CTestZipDlgDlg::OnDblclkContents(NMHDR* pNMHDR, LRESULT* pResult) 
{
	if (m_zip.IsClosed() || (m_zip.GetSpanMode() < 0))
		return;
	int i = m_files.GetFirstSelectedItem();
	if (i == -1)
		return;
	CCommentDlg dlg;
	CFileHeader fh;
	m_zip.GetFileInfo(fh, (WORD)i);
	dlg.m_szComment = fh.m_szComment;
	if (dlg.DoModal() == IDOK)
	{
		if (fh.m_szComment.Collate(dlg.m_szComment))
		{
			m_zip.SetFileComment((WORD)i, dlg.m_szComment);
			Redisplay();
		}
	}

	*pResult = 0;
}

void CTestZipDlgDlg::UpdateMenu(CMenu *pMenu)
{
	CCmdUI cmd;
	cmd.m_nIndexMax = pMenu->GetMenuItemCount();
	cmd.m_pMenu = pMenu;
	int s = 0;
	for (UINT i = 0; i < cmd.m_nIndexMax; i++)
	{
		cmd.m_nIndex = i;
		MENUITEMINFO mi;
		mi.cbSize = sizeof(MENUITEMINFO);
		mi.fMask = MIIM_SUBMENU
#ifndef NO_CHECK_FOR_SEPARATOR
	#if(WINVER >= 0x0500)
				| MIIM_FTYPE
	#else
				| MIIM_TYPE
	#endif /* WINVER >= 0x0500 */
#endif //NO_CHECK_FOR_SEPARATOR
;
		if (!pMenu->GetMenuItemInfo(cmd.m_nIndex, &mi, TRUE))
			return;
#ifndef NO_CHECK_FOR_SEPARATOR
		if (mi.fType & MFT_SEPARATOR)
			continue;
#endif //NO_CHECK_FOR_SEPARATOR
		if (mi.hSubMenu)
			UpdateMenu(pMenu->GetSubMenu(s++));
		else
		{
			cmd.m_nID = pMenu->GetMenuItemID(i);
			OnCmdMsg(cmd.m_nID, CN_UPDATE_COMMAND_UI, &cmd, NULL);
		}
		
	}

}

void CTestZipDlgDlg::OnInitMenu(CMenu* pMenu) 
{
	CResizableDialog::OnInitMenu(pMenu);
	UpdateMenu(pMenu);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级资源在线| 色综合天天综合网天天看片| 亚洲国产精品一区二区久久恐怖片 | 欧美在线观看视频一区二区| av动漫一区二区| 处破女av一区二区| 成人福利在线看| 99r精品视频| 欧美亚洲国产怡红院影院| 欧美在线视频全部完| 欧美日韩在线观看一区二区 | 色综合中文综合网| 国产在线播放一区| 国产精品综合网| 国产成人精品亚洲777人妖| 国产成人一区在线| 成人毛片在线观看| 91福利视频久久久久| 在线成人免费观看| 精品久久久久久久一区二区蜜臀| wwwwww.欧美系列| 亚洲丝袜精品丝袜在线| 五月婷婷久久综合| 国产一区欧美二区| 91在线视频免费91| 337p亚洲精品色噜噜噜| 久久九九久久九九| 亚洲男人天堂av| 日韩综合小视频| 国产精品系列在线播放| 91色九色蝌蚪| 欧美视频中文一区二区三区在线观看| 欧美一级在线视频| 国产欧美日韩不卡| 日韩中文字幕1| 成人sese在线| 日韩一区二区三区视频在线观看| 欧美韩国日本不卡| 天天操天天色综合| 波多野洁衣一区| 欧美一区二区三区公司| 中文字幕在线不卡一区| 日韩在线播放一区二区| youjizz久久| 欧美成人乱码一区二区三区| |精品福利一区二区三区| 久久超级碰视频| 欧美日韩国产免费| 国产精品动漫网站| 国产一区二区三区| 欧美人妖巨大在线| 中文字幕一区在线| 国产精品自拍网站| 日韩免费观看高清完整版| 亚洲乱码国产乱码精品精的特点 | 一区二区三区日韩在线观看| 国产大片一区二区| 日韩精品一区二区在线| 三级欧美韩日大片在线看| 色综合久久综合中文综合网| 国产校园另类小说区| 久久91精品国产91久久小草| 欧美日韩二区三区| 午夜伦欧美伦电影理论片| 色域天天综合网| 日韩毛片精品高清免费| 高清成人在线观看| 国产视频一区二区三区在线观看| 免费一级欧美片在线观看| 精品视频色一区| 午夜精品国产更新| 欧美日韩高清影院| 亚洲国产一二三| 欧美日韩电影在线播放| 亚洲a一区二区| 91国产免费看| 香港成人在线视频| 欧美巨大另类极品videosbest| 亚洲va欧美va人人爽午夜| 欧美美女直播网站| 天堂成人国产精品一区| 欧美一区二视频| 国产在线一区观看| 亚洲国产精品av| 91成人免费在线| 亚洲综合图片区| 欧美猛男gaygay网站| 久久激情五月婷婷| 国产精品污网站| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧美日韩一区二区 | 欧美另类高清zo欧美| 日本成人超碰在线观看| 精品国产一区二区三区久久影院 | 美腿丝袜亚洲综合| 久久久久综合网| 粉嫩av一区二区三区| 亚洲精品综合在线| 91精品国产综合久久婷婷香蕉 | 91美女片黄在线观看| 视频一区二区三区在线| 精品国精品国产尤物美女| 不卡av电影在线播放| 亚洲国产aⅴ成人精品无吗| 日韩欧美一区二区三区在线| 国产91在线|亚洲| 亚洲国产wwwccc36天堂| 久久久精品国产99久久精品芒果| 成人激情小说乱人伦| 午夜精品视频在线观看| 国产欧美日韩精品a在线观看| 色狠狠色狠狠综合| 国产高清久久久| 午夜影院在线观看欧美| 亚洲国产激情av| 91精品国产综合久久精品麻豆| 国产成人aaa| 蜜臀91精品一区二区三区| 亚洲欧美另类图片小说| 日韩欧美一卡二卡| 欧美午夜理伦三级在线观看| 国产精品一区二区久久精品爱涩| 亚洲午夜一区二区| 国产视频一区在线观看| 欧美一区二区三区在线观看视频| 97成人超碰视| 国产成人精品免费网站| 青青草97国产精品免费观看无弹窗版| 国产精品久久久久久久久久免费看 | 欧美乱熟臀69xxxxxx| www.日韩精品| 国产精品乡下勾搭老头1| 看片网站欧美日韩| 亚洲国产你懂的| 亚洲欧美另类图片小说| 中文字幕乱码亚洲精品一区| 精品噜噜噜噜久久久久久久久试看 | 日韩福利视频网| 亚洲国产sm捆绑调教视频| 亚洲欧美区自拍先锋| 国产精品久久久久久久久搜平片| 精品av久久707| 欧美一级二级在线观看| 欧美久久久久中文字幕| 欧美色成人综合| 欧美伊人久久久久久午夜久久久久| 91在线小视频| a4yy欧美一区二区三区| 成人激情小说乱人伦| 波多野结衣的一区二区三区| 风间由美一区二区av101| 成人午夜激情在线| 成人av免费在线观看| 成人激情综合网站| 91一区一区三区| 日本韩国一区二区三区| 欧美色网一区二区| 欧美日本一道本| 日韩欧美高清一区| 日韩精品一区二区三区蜜臀| 欧美大片拔萝卜| 欧美精品一区二区精品网| 久久久久国产成人精品亚洲午夜 | 亚洲一区视频在线| 亚洲mv在线观看| 久久丁香综合五月国产三级网站| 久久国产婷婷国产香蕉| 国产在线精品一区二区不卡了| 国产精品1区2区3区在线观看| www.亚洲国产| 欧美唯美清纯偷拍| 欧美一区二区免费视频| 亚洲国产精品黑人久久久| 亚洲乱码国产乱码精品精小说 | 最近日韩中文字幕| 亚洲国产另类精品专区| 精品一区二区三区蜜桃| 成人福利视频在线看| 欧美猛男超大videosgay| 精品成人佐山爱一区二区| 国产精品久久久久久久浪潮网站| 亚洲精品久久7777| 麻豆一区二区三| 不卡免费追剧大全电视剧网站| 欧美日韩一区 二区 三区 久久精品| 日韩欧美区一区二| 一色桃子久久精品亚洲| 日本亚洲欧美天堂免费| 成人免费av网站| 欧美男人的天堂一二区| 久久久91精品国产一区二区三区| 亚洲精品久久7777| 国产精品99久久久| 3atv在线一区二区三区| 国产精品久久毛片| 全国精品久久少妇| 91国偷自产一区二区三区观看 | 亚洲线精品一区二区三区八戒| 免费黄网站欧美| 色激情天天射综合网|