工控编程吧
标题:
15.上位机VC MFC实现状态栏带进度条功能
[打印本页]
作者:
qq263946146
时间:
2015-11-9 21:45
标题:
15.上位机VC MFC实现状态栏带进度条功能
状态栏如何嵌入进度条
功能展示
状态栏位于主界面的底部,通常用来显示系统的当前时间,程序运行中的状态信息等等。但如果程序正在执行一个任务,状态栏如何显示执行的进度?最好的方法是在状态栏中嵌入一个进度条来实现。本实例实现了这功能,
效果如图
(, 下载次数: 1)
上传
点击文件名下载附件
要点提示
要想在状态栏中显示进度条,也是非常简单,只要要创建进度条时,将进度条的父窗口指定为状态便可。当然最后还得根据需要适当的设置下进度条显示的位置
实现功能
•1.新建一个对话框应用程序
•2.在对话框类中添加几个变量
• CStatusBar m_StatusBar;
• CProgressCtrl m_Progress;
•3.在对话框的OnInitDialog()中实现对这两变量的初始化。也就实现了嵌入功能;
• m_StatusBar.Create(this); //创建状态栏
• UINT Indicates[6];
• for(int i = 0; i<6;i++)
• {
• Indicates
= 50+i;
• }
• m_StatusBar.SetIndicators(Indicates,6);//状态栏ID设置
• CRect rect;
• GetClientRect(rect);
• UINTPaneWidth = rect.Width()/6;
• for(intn = 0;n<6;n++)//设置面板宽度
• {
• m_StatusBar.SetPaneInfo(n,50+n*10,SBPS_NORMAL,PaneWidth);
• }
• //设置状态栏面板文本
• m_StatusBar.SetPaneText(0,"工控编程吧");
• m_StatusBar.SetPaneText(1,"gkbc8.com");
• m_StatusBar.SetPaneText(2,"状态");
• m_StatusBar.SetPaneText(4,"日期");
• CStringstr = CTime::GetCurrentTime().Format("%Y-%m-%d");
• m_StatusBar.SetPaneText(5,str);
• RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
• CRectRect;
• m_StatusBar.GetStatusBarCtrl().GetRect(3,&Rect);
• CRectProgRect(Rect.left,2,Rect.right,Rect.Height()+2);
• m_Progress.Create(PBS_SMOOTH,ProgRect,&m_StatusBar,111);//实现嵌入
• m_Progress.ShowWindow(SW_SHOW);
• m_Progress.SetRange(0,100);
• m_Progress.SetPos(50);
• this->Invalidate();//显示状态栏
下面演示一下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/af517490d52547f7b3481cff632d61b0/0/0/w_19rt8e0i0h.swf-albumId=4862230109-tvId=4862230109-isPurchase=0-cnId=12[/iqiyi]
源码及视频教程下载
(仅电脑上可见)
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4