博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进度条的使用 Progress控件
阅读量:4628 次
发布时间:2019-06-09

本文共 2358 字,大约阅读时间需要 7 分钟。

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

2011-03-22 09:09:09|  分类:  |  标签:          |字号 

 
 本人用的可以的
 
 

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);

       }

 

运行结果:

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

MFC编程实例二:进度条的使用 - 小桂 - 桂文永的博客
 
 我自己做的
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

 

转载于:https://www.cnblogs.com/chenzuoyou/p/3167120.html

你可能感兴趣的文章
Mysql 8.0.13如何重置密码
查看>>
发布功能完成
查看>>
excel 合并单元格
查看>>
How to Create Modifiers Using the API QP_MODIFIERS_PUB.PROCESS_MODIFIERS
查看>>
待飞笔记(第一天 )
查看>>
解惑好文:移动端H5页面高清多屏适配方案
查看>>
traefik添加多证书
查看>>
忽略UserInterfaceState.xcuserstate
查看>>
ReactNative--Flexbox布局
查看>>
java实现读取文件大全
查看>>
[Cordova] 无法显示Alert视窗
查看>>
借助过度区选择阈值
查看>>
评论列表显示及排序,个人中心显示
查看>>
JavaScript 实现鼠标拖动元素
查看>>
js 模糊查询 (360接口)
查看>>
python+rabbitMQ实现生产者和消费者模式
查看>>
“模态”对话框和“后退”按钮
查看>>
关于javascript实现的网站页面侧边悬浮框"抖动"问题
查看>>
linux_命令格式和命令提示符
查看>>
Cocos2d-X-3.0之后的版本的环境搭建
查看>>