Progress Control控件的使用

来源:互联网 发布:windows phone账号忘了 编辑:程序博客网 时间:2024/05/17 06:04

1.设置控件的属性

   在smooth默认是false,表示进度条是一格一格变化,设置成true的话,就相当于水流一样变化,不过我测试的时候win7里好像一样,没变化,但是在XP里有区别。

   属性smoothReserve默认是false,这样的话进度条一直是按一个方向变化的,而如果设置成true的话,当进度条走到最末端的时候,不是从最开始往末端走,而是

   从末端往开始走。


2.在类向导里给控件添加变量m_pro,同时对windows消息WV_TIMEER进行响应,添加对应函数即可。


3.初始化控件

    

//初始化控件,可以在函数OnInitial函数添加
m_pro.SetRange( 0, MAX_RANGE );//设置矩阵大小m_pro.SetPos( 0 );//设置进度条的初始位置SetTimer( PROGRESS1_ID, 20, NULL );//PROGRESS1_ID是自定义的值,对应m_pro//在OnTimer里面通过该值来识别该进度条事件//这个是OnTimer响应函数void CProgressControlDlg::OnTimer(UINT_PTR nIDEvent){// TODO: 在此添加消息处理程序代码和/或调用默认值int nPos, nMaxRange;CProgressCtrl  *pro;switch( nIDEvent ){case PROGRESS1_ID:pro = ( CProgressCtrl *)GetDlgItem( IDC_PROGRESS1 );break;default:return ;}//两种设置进度条位置的方法,其中注释掉的也行/*pro->GetRange( nPos, nMaxRange );nPos = pro->GetPos()+PROGRESS_INCREASE;if( nPos>nMaxRange ) nPos = 0;pro->SetPos( nPos );*/pro->OffsetPos( PROGRESS_INCREASE );//PROGRESS_INCREASE宏定义设置每次递增量pro->GetRange( nPos, nMaxRange );nPos = pro->GetPos();if( nPos>=nMaxRange ) pro->SetPos( 0 );CDialogEx::OnTimer(nIDEvent);}

原创粉丝点击