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的长度进行自动连续加载,直到按下停止加载按钮才会停止加载。

在这里插入图片描述

结语:谢谢!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PHP入门:在Windows中安装PHP工作环境

    PHP入门:在Windows系统中分别安装PHP工作环境一、什么是LAMP?Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各

    2021年12月20日
  • ubuntu下nvm,node以及npm的安装与使用

    ubuntu下nvm,node以及npm的安装与使用

  • 人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)

    人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)摘要:这篇博文介绍基于深度卷积神经网络实现的人脸表情识别系统,系统程序由Keras,OpenCv,PyQt5的库实现,训练测试集采用fer2013表情库。如图系统可通过摄像头获取实时画面并识别其中的人脸表情,也可以通过读取图片识别,本文提供完整的程序文件并详细介绍其实现过程。博文要点如下:表情识别数据集、搭建表情识别的模型、数据增强的批量训练、系统UI界面的实现。点击跳转至博文涉及的全部文件下载页。

  • itextpdf生成列表基本用法

    itextpdf生成列表基本用法随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。在上一篇文章使用itextpdf生成表格基本用法中,介绍了生成表格的基本步骤和一些常用设置,同样的,在某些需求下,我们需要在pdf中展示列表,体现条理性,itextpdf同样支持,这个开源库支持很多种列表风格来满足…

  • ideavim怎么用_idea常用快捷键图文

    ideavim怎么用_idea常用快捷键图文学了这么久的VIM,当然还是要用在开发上。下面来介绍一下ideavim这个插件。IdeaVim是用于基于IntelliJ平台的IDE的Vim仿真插件。IdeaVim支持许多Vim功能,包括普通/插入/可视模式,动作键,删除/更改,标记,寄存器,一些Ex命令,Vimregexp,通过〜/.ideavimrc配置,宏,窗口命令等。另外还可以自定义ideavim的快捷键,定制专属的快捷键。安装I…

发表回复

您的电子邮箱地址不会被公开。

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