多线程创建模态进度条窗口

本文介绍了如何在C++中通过多线程实现模态进度条窗口。详细步骤包括:主窗体按钮事件响应创建进度条窗口实例,进度条窗口接收参数并创建挂起线程,显示模态对话框,线程函数计算进度并更新进度条,最后关闭窗口。
摘要由CSDN通过智能技术生成
主窗体的类名为: CModifyFileDlg ;进度条窗体的类名为: CDlgProgress ;进度条实例作为的 CDlgProgress 成员的变量名为: m_ProgressCtrl ( 类型为 CProgressCtrl)
 
第一步:主窗体的按钮事件响应。
在主窗体的按钮事件响应中声明进度条窗口对象,调用其成员函数,把参数传给 CDlgProgress 的当前实例。
void CModifyFileDlg::OnBTNModifyFile()
{
      UpdateData();
      CDlgProgress ProgDlg; // 创建进度条窗口实例
    // 用于传递参数、创建线程和显示模态窗口的函数
      ProgDlg.DoModifyProgress(m_strFileName, m_strExpFileName); // 传入两个文件路径
}
 
第二步:进度条窗口的成员函数
这个函数在主窗口的按钮事件相应中被调用。
其作用是:
1 、接受参数,作为进程的参数传递给进程;
2 、创建进程,挂起的;
3 、显示模态的进程条对话框;
4 、等待线程结束;
5 、获取线程结束码。
DWORD CDlgProgress::DoModifyProgress(LPCSTR lpszSecFilePathName,
                                                   LPCSTR lpszDestFilePathName)
{
      // 1. 给线程变量赋值
      PARAM_ModifyFile ThreadParam; // 传递个线程的变量的结构体
      ThreadParam.m_strSecFilePathName = lpszSecFilePathName;
      ThreadParam.m_strDestFilePathName = lpszDestFilePathName;
      ThreadParam.pWnd = this;
 
      // 2. 创建一个被挂起的线程
      m_hThread = CreateThread(NULL, 0, THREAD_File,
                                     (LPVOID)&ThreadParam,
                                              CREATE_SUSPENDED , NULL);
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值