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

主窗体的类名为: 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);
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值