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

📄 progressdlg.cpp

📁 一个关于下载文件客户程序的小程序
💻 CPP
字号:
// ProgressDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CFileClient.h"
#include "ProgressDlg.h"

#include "ClientThread.h"

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

/////////////////////////////////////////////////////////////////////////////
// CProgressDlg dialog


CProgressDlg::CProgressDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CProgressDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CProgressDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_pOwner = NULL;
}


void CProgressDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CProgressDlg)
	DDX_Control(pDX, IDC_PRG_DOWNLOAD, m_ctrlProgress);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CProgressDlg, CDialog)
	//{{AFX_MSG_MAP(CProgressDlg)
	ON_BN_CLICKED(IDC_CANCEL, OnCancelDownload)
	ON_WM_TIMER()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProgressDlg message handlers

void CProgressDlg::OnOK() 
{
	// TODO: Add extra validation here
	return;
//	CDialog::OnOK();
}

void CProgressDlg::OnCancel() 
{
	// TODO: Add extra validation here
	return;
//	CDialog::OnCancel();
}

void CProgressDlg::OnCancelDownload() 
{
	CDialog::OnCancel();
}

void CProgressDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(m_pOwner && m_pOwner->m_pClientThread
		&& ((CClientThread*)(m_pOwner->m_pClientThread))->m_pClient)
	{
		CClient* pClient = ((CClientThread*)(m_pOwner->m_pClientThread))->m_pClient;

		if(pClient->m_listExpectedFiles.GetCount() == 0)
			CDialog::OnOK();
		else
		{
			int nPercent = 0;
			if(pClient->m_CurFile.dwFileLen > 0)
				nPercent = (int)((double)pClient->m_CurFile.dwReceivedLen/pClient->m_CurFile.dwFileLen*100);
			if(nPercent > 100)
				nPercent = 100;
			else if(nPercent < 0)
				nPercent = 0;

			CString strPercent;
			strPercent.Format("%d%%", nPercent);
			GetDlgItem(IDC_CURFILE)->SetWindowText(pClient->m_CurFile.strFileName);
			GetDlgItem(IDC_PERCENT)->SetWindowText(strPercent);
			m_ctrlProgress.SetPos(nPercent);
		}
	}

	CDialog::OnTimer(nIDEvent);
}

BOOL CProgressDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	SetTimer(1, 100, NULL);
	m_ctrlProgress.SetRange(0, 100);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CProgressDlg::OnDestroy() 
{
	KillTimer(1);

	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
}

⌨️ 快捷键说明

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