// FirmDownDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "P9M.h"
#include "FirmDownDlg.h"
#include "Nu_ConverFuns.h"
// CFirmDownDlg 对话框
IMPLEMENT_DYNAMIC(CFirmDownDlg, CDialog)
CFirmDownDlg::CFirmDownDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFirmDownDlg::IDD, pParent)
{
}
CFirmDownDlg::~CFirmDownDlg()
{
}
void CFirmDownDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PR, m_Progress);
}
BEGIN_MESSAGE_MAP(CFirmDownDlg, CDialog)
ON_MESSAGE(WM_USER + 5, &CFirmDownDlg::OnMSGClose)
ON_WM_TIMER()
END_MESSAGE_MAP()
// CFirmDownDlg 消息处理程序
BOOL CFirmDownDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
m_Progress.SetBkColor(RGB(160,180,220));
m_Progress.ShowPercent(true);
m_bFinished = FALSE;
LoadLanguage();
SetTimer(1,200,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CFirmDownDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
// CDialog::OnOK();
}
void CFirmDownDlg::OnCancel()
{
// TODO: 在此添加专用代码和/或调用基类
// CDialog::OnCancel();
}
void CFirmDownDlg::UpdateFirmware()
{
if(theApp.m_bDemo)
{
m_Progress.SetRange32(0,230);
m_Progress.SetStep(1);
m_Progress.SetPos(0);
pMainFrm->m_bBusy = TRUE;
for(int i=0;i<230;i++)
{
m_Progress.StepIt();
WaitProcess(250);
}
pMainFrm->m_bBusy = FALSE;
pMainFrm->SetForegroundWindow();
pMainFrm->ShowWindow(SW_SHOWNOACTIVATE);
pMainFrm->ShowWindow(SW_SHOWNORMAL);
ShowWindow(SW_HIDE);
AfxMessageBox(g_LangMag.LoadString(_T("IDS_FM_DOWN_FINISH")));
CDialog::OnOK();
}
if(!theApp.m_bDemo)
{
AfxBeginThread(UpdateFirmwareThread, this);
}
}
UINT CFirmDownDlg::UpdateFirmwareThread(LPVOID pParam)
{
CFirmDownDlg * pDlg = (CFirmDownDlg*)pParam;
pMainFrm->m_bBusy = TRUE;
pMainFrm->EnableToolBar(FALSE);
if(!theApp.m_P9M.DownloadFirm(pDlg->m_str_File,&pDlg->m_Progress))
{
pDlg->SetForegroundWindow();
pDlg->ShowWindow(SW_SHOWNOACTIVATE);
pDlg->ShowWindow(SW_SHOWNORMAL);
pDlg->m_bFinished = FALSE;
}
else
{
Sleep(25000);
pDlg->SetForegroundWindow();
pDlg->ShowWindow(SW_SHOWNOACTIVATE);
pDlg->ShowWindow(SW_SHOWNORMAL);
pDlg->m_bFinished = TRUE;
}
::PostMessage(pDlg->m_hWnd,WM_USER + 5,NULL,NULL);
pMainFrm->m_bBusy = FALSE;
// pMainFrm->EnableToolBar(TRUE);
return 0;
}
void CFirmDownDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
KillTimer(1);
UpdateFirmware();
CDialog::OnTimer(nIDEvent);
}
LRESULT CFirmDownDlg::OnMSGClose( WPARAM wParam,LPARAM lParam )
{
ShowWindow(SW_HIDE);
if(m_bFinished)
MessageBox(g_LangMag.LoadString(_T("IDS_FM_DOWN_FINISH")),g_LangMag.LoadString(_T("IDS_MESSAGE")));
else
AfxMessageBox(g_LangMag.LoadString(_T("IDS_FM_DOWN_FAIL")));
CDialog::OnOK();
return 0;
}
void CFirmDownDlg::LoadLanguage()
{
SetDlgItemText(IDC_ST_Note,g_LangMag.LoadString(_T("IDS_FM_DOWN_NOTE")));
}
没有合适的资源?快使用搜索试试~ 我知道了~
模态对话框显示后台线程的进度
共2个文件
cpp:1个
h:1个
3星 · 超过75%的资源 需积分: 9 16 下载量 178 浏览量
2013-06-05
17:16:47
上传
评论
收藏 2KB RAR 举报
温馨提示
使用方法 CFirmDownDlg dlg; dlg.m_str_File = filedialog.GetPathName(); dlg.DoModal(); 进度条在m_P9M.DownloadFirm中被移动.
资源推荐
资源详情
资源评论
收起资源包目录
P9M.rar (2个子文件)
FirmDownDlg.cpp 3KB
FirmDownDlg.h 846B
共 2 条
- 1
资源评论
- 五和子2015-12-17挺好,关键是分值小,0分,好评
- danylin2015-02-25没什么用,简单的精度显示
zztoll
- 粉丝: 32
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功