www.pudn.com > ViewerCarry.rar > DisplayTranProgDlg.cpp


// DisplayTranProgDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "thumbviewer.h" 
#include "DisplayTranProgDlg.h" 
#include "TextProgressCtrl.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
HWND g_hDlgWnd; 
int  g_nTotalImage; 
bool g_bProgCtrl = false; 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayTranProgDlg dialog 
 
 
CDisplayTranProgDlg::CDisplayTranProgDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CDisplayTranProgDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CDisplayTranProgDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CDisplayTranProgDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CDisplayTranProgDlg) 
	DDX_Control(pDX, IDC_IMAGEDISPLAY_STATIC, m_hStaticDisplay); 
	DDX_Control(pDX, IDCANCEL, m_hbtCancelTran); 
	DDX_Control(pDX, IDOK, m_hbtButton); 
	DDX_Control(pDX, IDC_IMAGETRANDISPLAY_PROG, m_ImageTran_Progess); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CDisplayTranProgDlg, CDialog) 
	//{{AFX_MSG_MAP(CDisplayTranProgDlg) 
	ON_BN_CLICKED(IDCANCEL, OnCancelTran) 
	//}}AFX_MSG_MAP 
    ON_MESSAGE(WM_FILE_UPDATE,  OnImageTranMsg) 
	ON_MESSAGE(WM_PROG_INIT,OnProgInitMsg) 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayTranProgDlg message handlers 
BOOL CDisplayTranProgDlg::OnInitDialog() 
{ 
    CDialog::OnInitDialog(); 
	// TODO: Add extra initialization here 
	  g_bProgCtrl = false; 
	  m_ImageTran_Progess.SetRange(0,100); 
	  m_ImageTran_Progess.SetPos(0); 
	  g_hDlgWnd=this->GetSafeHwnd(); 
	  ::EnableWindow(this->m_hbtButton,FALSE); 
	  return TRUE; 
} 
 
//自定义消息的进度条 
LONG CDisplayTranProgDlg::OnImageTranMsg(UINT wParam, LONG lParam) 
{ 
   	if(g_bProgCtrl) 
	{ 
	   return -1; 
	} 
	char *szMsg=(char *)wParam; 
	int nStep= (int)lParam; 
	GetDlgItem(IDC_IMAGEDISPLAY_STATIC)->SetWindowText(szMsg); 
	 
	m_ImageTran_Progess.SetPos(nStep);//设置单文件上传的进度条 
	//进度条已经完成,使灰化的按钮便得可用 
	if(m_ImageTran_Progess.GetPos() == 100) 
	{ 
	   ::EnableWindow(this->m_hbtButton,TRUE); 
	} 
	return 1; 
} 
 
LONG CDisplayTranProgDlg::OnProgInitMsg(UINT wParam, LONG lParam) 
{ 
     	int nProgSet=(int)wParam; 
	    m_ImageTran_Progess.SetRange(0,nProgSet); 
	    m_ImageTran_Progess.SetPos(0);   
		return 1; 
} 
 
 
void CDisplayTranProgDlg::OnCancelTran()  
{ 
	// TODO: Add your control notification handler code here 
	g_bProgCtrl=true; 
	::EnableWindow(m_hStaticDisplay,FALSE); 
	::EnableWindow(m_hbtCancelTran,FALSE); 
    m_ImageTran_Progess.OffsetPos(m_ImageTran_Progess.GetPos()/2); 
	m_ImageTran_Progess.OffsetPos(m_ImageTran_Progess.GetPos()/4); 
	//m_ImageTran_Progess.OffsetPos(0); 
	Sleep(500); 
    ::EnableWindow(this->m_hbtButton,TRUE);//使返回按钮可用 
}