QQ登录

只需一步,快速开始

15.上位机VC MFC实现状态栏带进度条功能

[ 复制链接 ]
状态栏如何嵌入进度条

功能展示
状态栏位于主界面的底部,通常用来显示系统的当前时间,程序运行中的状态信息等等。但如果程序正在执行一个任务,状态栏如何显示执行的进度?最好的方法是在状态栏中嵌入一个进度条来实现。本实例实现了这功能,
效果如图

15.上位机VC MFC实现状态栏带进度条功能

15.上位机VC MFC实现状态栏带进度条功能



要点提示
要想在状态栏中显示进度条,也是非常简单,只要要创建进度条时,将进度条的父窗口指定为状态便可。当然最后还得根据需要适当的设置下进度条显示的位置

实现功能
•1.新建一个对话框应用程序
•2.在对话框类中添加几个变量
•  CStatusBar   m_StatusBar;
•  CProgressCtrl m_Progress;
•3.在对话框的OnInitDialog()中实现对这两变量的初始化。也就实现了嵌入功能;
•  m_StatusBar.Create(this);  //创建状态栏
•  UINT Indicates[6];
&#8226;  for(int i = 0; i<6;i++)
&#8226;  {
&#8226;  Indicates= 50+i;
&#8226;  }
&#8226;  m_StatusBar.SetIndicators(Indicates,6);//状态栏ID设置
&#8226;  CRect rect;
&#8226;  GetClientRect(rect);
&#8226;  UINTPaneWidth = rect.Width()/6;
&#8226;  for(intn = 0;n<6;n++)//设置面板宽度
&#8226;  {
&#8226;  m_StatusBar.SetPaneInfo(n,50+n*10,SBPS_NORMAL,PaneWidth);
&#8226;  }
&#8226;  //设置状态栏面板文本
&#8226;  m_StatusBar.SetPaneText(0,"工控编程吧");
&#8226;  m_StatusBar.SetPaneText(1,"gkbc8.com");
&#8226;  m_StatusBar.SetPaneText(2,"状态");
&#8226;  m_StatusBar.SetPaneText(4,"日期");
&#8226;  CStringstr = CTime::GetCurrentTime().Format("%Y-%m-%d");
&#8226;  m_StatusBar.SetPaneText(5,str);
&#8226;  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
&#8226;  CRectRect;
&#8226;  m_StatusBar.GetStatusBarCtrl().GetRect(3,&Rect);
&#8226;  CRectProgRect(Rect.left,2,Rect.right,Rect.Height()+2);
&#8226;  m_Progress.Create(PBS_SMOOTH,ProgRect,&m_StatusBar,111);//实现嵌入
&#8226;  m_Progress.ShowWindow(SW_SHOW);
&#8226;  m_Progress.SetRange(0,100);
&#8226;  m_Progress.SetPos(50);
&#8226;  this->Invalidate();//显示状态栏

下面演示一下功能实现的整个过程


源码及视频教程下载
(仅电脑上可见)
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:15.上位机VC MFC实现状态栏带进度条功能.rar 
文件大小:120.31 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索