MFC控件 — 进度条【案例】「建议收藏」

MFC控件 — 进度条【案例】「建议收藏」打开游戏或者其他一些软件时,时常会看到刚开始时有一个进度条在加载,有点酷炫的感觉。对于MFC进度条的使用,下面用一个案例介绍一下。案例:进度条单步加载和自动连续加载步骤:1.按下图在对话框中添加一个进度条,一个编辑框,和3个按钮,并为进度条添加一个控件变量进度条变量:m_Progress2.在初始化函数中对进度条进行初始化,代码如下:BOOLCSpinDlg::OnInitDia…

大家好,又见面了,我是你们的朋友全栈君。

打开游戏或者其他一些软件时,时常会看到刚开始时有一个进度条在加载,有点酷炫的感觉。对于MFC进度条的使用,下面用一个案例介绍一下。

案例:进度条单步加载和自动连续加载

步骤:
1.按下图在对话框中添加一个进度条,一个编辑框,和3个按钮,并为进度条添加一个控件变量
在这里插入图片描述
进度条变量:m_Progress
在这里插入图片描述
2.在初始化函数中对进度条进行初始化,代码如下:

BOOL CSpinDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
  //XXXXX
  //默认代码
  //XXXXX
	
	m_Progress.SetRange(0,100);//设置进度条数值变化范围
	m_Progress.SetPos(1);      //设置进度条默认初始进度

	CString str;
	int nPos = m_Progress.GetPos(); // 获取进度条的当前位置
	str.Format("%d",nPos);
	GetDlgItem(IDC_EDIT_Progress)->SetWindowText(str + _T("%"));//显示进度条初始进度

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

运行,此时进度条位置在1%的位置上:
在这里插入图片描述

3.为3个按钮分别添加点击事件:

单步加载 按钮:

//单步控制进度条
void CSpinDlg::OnBtnSingleGo() 
{
	m_Progress.SetStep (5); //设置进度条步长
	m_Progress.StepIt();    //按照当前步长更新位置
	
	int nPos = m_Progress.GetPos();// 获取进度条的当前位置
	CString str;
	str.Format("%d",nPos);
	GetDlgItem(IDC_EDIT_Progress)->SetWindowText(str + _T("%"));//显示进度条进度
	
}

自动加载 按钮:

//定时器:控制进度条自动加载
void CSpinDlg::OnBtnGo() 
{
	SetTimer(1,500,NULL); //开启自动加载

}

//定时器内部具体实现进度条的加载

void CSpinDlg::OnTimer(UINT nIDEvent) 
{
	
	m_Progress.SetStep (5);//步长
	m_Progress.StepIt();//按步长更新位置
	int nPos = m_Progress.GetPos();// 获取进度条当前位置
	
	CString str;
	str.Format("%d",nPos);
	GetDlgItem(IDC_EDIT_Progress)->SetWindowText(str + _T("%"));//显示进度条进度
	
	CDialog::OnTimer(nIDEvent);
}

停止加载 按钮:

//关闭定时器,停止进度条的加载
void CSpinDlg::OnBtnStop() 
{
	KillTimer(1);
}

运行起来,点击单步加载,进度条将按照每步为5的长度进行加载
点击自动加载,进度条将按照每步为5的长度进行自动连续加载,直到按下停止加载按钮才会停止加载。

在这里插入图片描述

结语:谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160338.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • siamfc运行_sta系统

    siamfc运行_sta系统修改siamfc文件夹下的Load.py文件importsyssys.path.append(‘/home/nanorobot/Documents/siamfc/siamfc’)sys.path.append(‘/home/nanorobot/Documents/siamfc’)fromsiamfcimportTrackerSiamFC,ops上面是把需要用到的自定义的模块路径引入进来,以防后面找不到模块,路径根据你自己的文件位置改。下面是修改主函数:if__name__==

    2022年10月1日
    2
  • java 配置事务回滚_Spring@Transactional事务回滚

    java 配置事务回滚_Spring@Transactional事务回滚Spring中事务分为编程时事务和声明式事务,编程式事务:编程人员通过代码控制事务的开启、回滚、提交,声明式事务:把事务的处理交给spring。使用注解@transactional配置就是声明式事务。基本配置在applicationContext.xml配置文件中1//配置spring的DataSourceTransactionManager事务管理器23class=”org…

    2022年10月21日
    1
  • linux杀死进程详解「建议收藏」

    linux杀死进程详解「建议收藏」1.kill作用:根据进程号杀死进程用法:kill[信号代码]进程ID举例:[root@localhost~]#psauxf|grephttpd注意:kill-9来强制终止退出举例[root@localhost~]#psaux|grepgaim或

    2022年9月29日
    4
  • html中怎么让表格居中_html表格上下居中

    html中怎么让表格居中_html表格上下居中回答:IE6/7及IE8混杂模式中,text-align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:Auto;margin-right:Auto”。但这个方式IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的”text…

    2022年9月2日
    5
  • Source Insight 4.0 序列号 license文件

    Source Insight 4.0 序列号 license文件安装程序下载在官网上下载SourceInsight4.0的安装程序.目前版本4.00.0098可用30天的试用安装首次启动选择授权方式,这里选择第二个选项,30天试用。点击下一步,输入名称、公司或组织名称、邮箱信息,申请30天的试用。输入完成后,点击下一步,直到安装完成。修改sourceinsight4.exe用16进制编辑器(sublimetext)打开s…

    2022年7月26日
    382
  • JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite)

    JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite)JAVA基础知识和常用算法合集:https://blog.csdn.net/GD_ONE/article/details/104061907目录1.主类的命名必须是Main2.输入输出:2.1输入:(1)使用Scanner类进行输入(2)hasNext()方法2.2输出3快速输入输出3.1使用StreamTokenizer和PrintW…

    2022年5月26日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号