MFC编程实例二:进度条的使用

2011-03-22 09:09:09|  分类: C++(C语言) |  标签:进度  nlower  nupper  添加  mfc  |字号 订阅

 
 本人用的可以的
 
 

BOOL CEx040105eDlg::OnInitDialog() {

m_progress.SetRange( 0 ,100 );//设置进度的下限和上限,默认值是0和100。
m_progress.SetStep(5);//设置StepIt一次移动多少进度,默认值是10。  m_progress.SetPos(0);//设置进度条的初始进度。

m_progress.SetPos(0); //设置当前进度条位置;

}

实现函数:

void SndMESSge()

{

for( int i = 0; i <100/5; i ++)
{
Sleep( 100 );
m_progress.StepIt();//初始化时设置了每次移动5度,总共移动100/5 次;
}

 }
 
********************************************************************
以上是我试过的,很简单的
********************************************************************
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

(以下蓝色字体为手动添加的代码)

(1)   创建一个基于对话框的应用程序。

(2)   在对话框界面添加一个文本框、一个进度条控件(Progress控件)和一个按钮。

(3)   为Progress控件添加一个变量m_ctrlProgress,文本框添加一个变量m_strText。

(4)   在初始化函数中添加如下代码

BOOL CBbbDlg::OnInitDialog()

{

CDialog::OnInitDialog();

…………

// TODO: Add extra initialization here

SetDlgItemText(IDC_EDIT1,_T("0%"));

//设置进度条的范围

m_ctrlProgress.SetRange(0,100);

//设置进度条的每一步的增量

m_ctrlProgress.SetStep(10);

//设置进度条的当前位置

m_ctrlProgress.SetPos(0);

return TRUE;  // return TRUE  unless you set the focus to a control

}

(5)   双击按钮,添加如下代码:

void CBbbDlg::OnButton1()

{

// TODO: Add your control notification handler code here

UpdateData(false);

//获取进度条的位置范围的最大值和最小值

int nLower=0;

int nUpper=0;

m_ctrlProgress.GetRange(nLower,nUpper);

if(m_ctrlProgress.GetPos()==nUpper){

m_ctrlProgress.SetPos(nLower);

}

//用每一步的增量来增加进度条的当前位置

m_ctrlProgress.StepIt();

//获取进度条的当前位置

int nPos=(m_ctrlProgress.GetPos()-nLower)*100/(nUpper-nLower);

CString s;

s.Format("%d",nPos);

m_strText=s+"%";

UpdateData(false);

}

运行结果:

(单击测试按钮进度条位置前进一步,要实现自动前进,需要设置定时器,本文暂时不介绍定时器的运用)

 
 我自己做的
for{

int n =(int)wParam;
int ncout = ( int )m_arraySendinfo.GetCount();
if ( m_bInitProgess == FALSE )
{
m_bInitProgess = TRUE;
m_Progreess.SetRange(0, ncout );//设置范围
m_Progreess.SetPos(0);//设置位置
m_Progreess.ShowWindow( SW_SHOW );
}

int nPos = 0;
int nPOS = m_Progreess.SetPos( ++nPos );
m_Progreess.SetPos( nPOS );
m_Progreess.SetStep( nPos );
m_Progreess.StepIt();
return 0;

}

或者
 

int n =(int)wParam;
int ncout = ( int )m_arraySendinfo.GetCount();

m_Progreess.SetRange(0, ncout );//设置范围
m_Progreess.SetPos(0);//设置位置

for(int i = 0 ; i <ncout  ; i ++ )

{

int nPos = 0;
int nPOS = m_Progreess.SetPos( ++nPos );
m_Progreess.SetPos( nPOS );
m_Progreess.SetStep( nPos );
m_Progreess.StepIt();
return 0;

}

参考文献:曲扬,Visual C++实效编程280例,人民邮电出版社,2009.3

进度条的使用 Progress控件的更多相关文章

  1. C# 通过委托控制进度条以及多线程更新控件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 用VS2017进行移动开发(C#、VB.NET)——Progress控件,Smobiler移动开发

    Progress控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个Progress控件到窗体界面上 修改Pr ...

  3. Android 自己定义圆圈进度并显示百分比例控件(纯代码实现)

    首先,感谢公司能给我闲暇的时间,来稳固我的技术,让我不断的去探索研究,在此不胜感激. 先不说实现功能,上图看看效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  4. WP8滑动条(Slider)控件的使用

    1. <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinit ...

  5. 使用 new XMLHttpRequest() 制作下载文件进度条

    mui 进度控件使用方法: 检查当前容器(container控件)自身是否包含.mui-progressbar类: 当前容器包含.mui-progressbar类,则以当前容器为目标控件,直接显示进度 ...

  6. 使用C#开发ActiveX控件(新)

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  7. iOS企业级开发初级课程-UIView与控件(20集)

    UIView与控件向大家介绍了视图和控件之间的关系以及应用画面的建构层次.然后是对标签.按钮.文本框.文本视图.开关.滑块.分段控件.网页控件.屏幕滚动控件.等待控件.进度条.警告.动作选单.工具栏. ...

  8. BackgroundWorker控件

    在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示 ...

  9. 使用C#开发ActiveX控件(新) 转 http://www.cnblogs.com/yilin/p/csharp-activex.html

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

随机推荐

  1. Java实现 LeetCode 821 字符的最短距离(暴力)

    821. 字符的最短距离 给定一个字符串 S 和一个字符 C.返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组. 示例 1: 输入: S = "loveleet ...

  2. Java实现十六进制转十进制

    基础练习 十六进制转十进制 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进 ...

  3. Java实现 LeetCode 454 四数相加 II

    454. 四数相加 II 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为 ...

  4. Java实现 LeetCode 424 替换后的最长重复字符

    424. 替换后的最长重复字符 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 注意: 字 ...

  5. Java实现 LeetCode 309 最佳买卖股票时机含冷冻期

    309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 .​ 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股 ...

  6. java实现Synchronized锁的用法

    Java线程同步中的一个重要的概念synchronized. synchronized是java的关键字,是一种同步锁,它作用的对象有以下几种: ①作用在代码块上.该代码块称为同步代码块,作用范围是大 ...

  7. java实现整数翻转

    ** 整数翻转** 以下程序把一个整数翻转(8765变为:5678),请补充缺少的代码. int n = 8765; int m = 0; while(n>0) { m = __________ ...

  8. 启动appium server时打印日志时间

    在调试脚本的时候想看查找元素和执行命令花了多少时间,我们可以在启动appium server的时候加上启动参数,实现我们的需求. 1)输入:appium h,可以查看appium提供的启动参数有哪些. ...

  9. Spring Cloud 系列之 Apollo 配置中心(四)

    本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) Spring Clou ...

  10. RocketMQ系列(三)消息的生产与消费

    前面的章节,我们已经把RocketMQ的环境搭建起来了,是一个两主两从的异步集群.接下来,我们就看看怎么去使用RocketMQ,在使用之前,先要在NameServer中创建Topic,我们知道Rock ...