添加进度条对话框

1、新建一个对话框,ID为:IDD_progressDialog,并在此对话框中添加进度条控件,ID为:IDC_PROGRESS1。通过向导为进度条关联一个控制变量:m_loadProgress

2、双击此对话框,添加CProgressContrDlg类,在CProgressContrDlg.cpp中BEGIN_MESSAGE_MAP与END_MESSAGE_MAP()之间添加ON_MESSAGE(WM_UPDATEPOS,OnMyMessage),并在StdAfx.h头文件中添加:#define WM_UPDATEPOS WM_USER + 1000

然后添加OnMyMessage实现函数(同时在此类的头文件中添加保护成员:afx_msg void OnMyMessage(WPARAM wParam,LPARAM lprama);):

void  CProgressContrDlg::OnMyMessage(WPARAM wParam,LPARAM lprama)

{   

int pos=(int)lprama;

m_loadProgress.SetPos(pos);

}

3、在需要打开此对话框的CXXApp类中包含#include "ProgressContrDlg.h",并定义公有成员:CProgressContrDlg *progressDlg;

在需要打开此对话框的CXXApp中添加全局的线程函数的调用语句:

progressDlg->ShowWindow(TRUE);

AfxBeginThread(ThreadFunOne,progressDlg);

        progressDlg->m_loadProgress.SetRange(0,200);

在需要关闭此对话框的文件中添加:

CWnd* pRgressDlg=FindWindow(NULL,"加载进度条");

CProgressContrDlg*progress=(CProgressContrDlg*)pRgressDlg;

progress->m_loadProgress.SetPos(1000);

Sleep(1000);

    ::SendMessage(pRgressDlg->m_hWnd,WM_CLOSE,0,0);

线程实现函数为(同时在CXX.h头文件中添加全局线程函数的声明:UINT ThreadFunOne(LPVOID pParam);):

UINT ThreadFunOne(LPVOID pParam)

{  

    CProgressContrDlg *pRgressDlg=(CProgressContrDlg*)pParam;

    for (int setPos=10;setPos<=1000;setPos+=10)

    {

Sleep(1000);

::SendMessage(pRgressDlg->m_hWnd,WM_UPDATEPOS,0,setPos);

    }

 

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值