• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
生若秋叶
gonna to be a designer,a designer of my life!!
博客园    首页    新随笔    联系   管理    订阅  订阅

MFC 进度条控件

1.进度条

        主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。 

2.进度条控制在MFC类库中的封装类为CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更新当前位置。进度条的范围用来表示整个操作过程的时间长度,当前位置表示完成情况的当前时刻。

SetRange()函数用来设置范围,初始范围为0-100,

SetPos()函数用来设置当前位置,初始值为0,

SetStep()函数用来设置步长,初始步长为10,

StepIt()函数用来按照当前步长更新位置,

OffsetPos()函数用来直接将当前位置移动一段距离。如果范围或位置发生变化,那么进度条将自动重绘进度区域来及时反映当前工作的进展情况。 
3.实例

    1)简单用法(这里我们是在控件上定义了一个类型为CProgressCtrl的m_Progress的成员变量,但是我在vc里面发现我定义了以后调试程序程序跑不了,我们可以换个办法,

((CProgressCtrl*)GetDlgItem(IDC_PROGRESS1))->ShowWindow(true);

首先用GetDlgItem得到控件的句柄,然后强制类型转换,然后访问对应的成员函数.

)

m_Progress.SetRange(1,100); 
for(int i=0;i<100;i++) 
{ 
m_Progress.StepIt(); 
Sleep(10); 
} 

    2)关于接受时进度条的应用:

DWORD dwSize = recv()//先接收文件的大小;

m_ProgressCtrl.SetRange32(0, nSize); //设置进度条的范围

DWORD dwRecv = 0;

while(dwRecv < dwSize)

{

dwRecv += recv(); //接收文件

m_ProgressCtrl.SetPos(dwRecv); //设置进度条的位置

}

posted @ 2013-07-26 23:31  HappyCoder  阅读(4748)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3