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);//使返回按钮可用
}