有的时候我们的程序耗时比较长,为了给用户一个直观的感受程序不是卡死了,还在运行中,这时候显示个进度条在那里还是比较友好的。 但是很多时候我们并不知道具体的进度,所以这个时候让进度条来回滚动比较合适。如下图所示,第一个进度条是普通的进度条,第二个就是我们要做的来回滚动的进度条。
要使得进度条光标来回滚动,需要将设置进度条风格为:PBS_MARQUEE 。但是仅仅设置该风格是不能够让进度条来回滚动的。还需要发送消息
PBM_SETMARQUEE 。
下面是实现示例:
1. 创建基于对话框的MFC 程序。在.h 文件中定义进度条控件变量CProgressCtrl m_PorgessCtrl2; (不需要在界面上拖控件,直接定义控件变量然后create)
2. 在OnInitDialog 函数中 ,添加如下代码
m_PorgessCtrl2.Create(WS_VISIBLE|PBS_MARQUEE,CRect(50,200,400,230),this,11); m_PorgessCtrl2.SendMessage(PBM_SETMARQUEE,TRUE,30);
完成,运行程序进度条实现来回滚动效果。
win32控件一览:https://msdn.microsoft.com/en-us/library/bb773169(v=vs.85).aspx
Progress bar control: https://docs.microsoft.com/zh-cn/windows/win32/controls/progress-bar-control
Marquee Style : https://docs.microsoft.com/zh-cn/windows/win32/controls/progress-bar-control#marquee-style