设为首页 加入收藏

TOP

VC++中的Progress控件如何使用(二)
2014-11-23 20:10:54 来源: 作者: 【 】 浏览:52
Tags:Progress 控件 如何 使用
E_MAP() // CProgressDialog message handlersBOOL CProgressDialog::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_ProgressCtrl.SetRange(0, 100); m_ProgressCtrl.SetPos(0); SetWindowText(m_Caption); if (!m_EnableCancel) { m_CancelButton.ShowWindow(SW_HIDE); } DWORD threadID; m_Thread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)CProgressDialog::Thread Proc,(LPVOID)this,0,&threadID); return TRUE; // return TRUE unless you set the focus to a control   // EXCEPTION: OCX Property Pages should return FALSE } DWORD WINAPI CProgressDialog::ThreadProc(CProgressDialog* dlg) {DWORD ret=dlg->ProgressProc(); dlg->PostMessage(WM_COMMAND, IDOK); return ret; } void CProgressDialog::OnCancel() { // TODO: Add extra cleanup here if (m_EnableCancel) m_IsCancel=TRUE; } void CProgressDialog::OnOK() { // TODO: Add extra validation here WaitForSingleObject(m_Thread, INFINITE); CDialog::OnOK(); }DWORD CMyProgressDialog::ProgressProc() {SetMessage("Progress..."); for (int i=0;i<100;i++) {  if (IsCancel()) break; Sleep(100); SetProgress(i); } return 0; }
只需在应用Progress控件的地方调用CMyProgressDialog类的对象即可。可根据不同的应用程序修改DWORD CMyProgressDialog::ProgressProc()这个继承函数的函数体来适应相应的程序。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Visual C++中回调函数使用的变身.. 下一篇应用实例:VC++实现广告窗口自动..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: