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. Linux(十) —— 使用 rz 和 sz 命令上传与下载

    以CentOS 7 系统为例,一般上传下载都是使用的第三方工具,但是在操作上并不方便,每次都要找到对应的目录才可以执行上传.下载操作,比较麻烦. 而CentOS为例的 Linux 系统可以通过安装 插 ...

  2. Java实现 LeetCode 771 宝石与石头(这是真暴力)

    771. 宝石与石头 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 ...

  3. Java实现 LeetCode 388 文件的最长绝对路径

    388. 文件的最长绝对路径 假设我们以下述方式将我们的文件系统抽象成一个字符串: 字符串 "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" 表示 ...

  4. Java实现 蓝桥杯VIP 算法提高 进制转换

    算法提高 进制转换 时间限制:1.0s 内存限制:256.0MB 问题描述 程序提示用户输入三个字符,每个字符取值范围是0-9,A-F.然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制 ...

  5. 安装fail2ban,防止ssh爆破及cc攻击

    背景:之前写过shell脚本防止服务器ssh爆破,但是对于服务器的cpu占用较多,看来下资料安装fail2ban 可以有效控制ssh爆破 1:fail2ban 安装(环境:centos6  宝塔) y ...

  6. javaScript的执行机制-同步任务-异步任务-微任务-宏任务

    一.概念理解 1.关于javascript javascript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但javascript是单线程这一核心仍未改变.所以一切javascr ...

  7. Java 入门教程

    Java 入门教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言. Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统 ...

  8. MySQL数据库离线包安装与注册

    本文主要介绍了MySQL数据库的离线安装和将MySQL服务注册为Windows应用服务的主要步骤. 1.下在安装程序包 MySQL Community Server 5.6.15 官方下载地址http ...

  9. Java实现定时任务的三种简单方法

    第一种方法: /** * 先定义一个任务每天执行的时间点,再写一个死循环,不断地拿当前时间和事先定义的时间去比对,若到时间则执行任务 */ @Test public void test1() { St ...

  10. Clear Writer v1.7 更新

    拖更了这么久了的我终于来更新了--这可能是今年上半年最后一次更新了-- 这次我打算把 Clear Writer 公开发布了. 下载链接 下载链接在这里. (这次用蓝奏,不用奶牛快传了) Clear W ...