MFC3 基本对话框的使用(三) 滑块与进度条

要求:将滑块与编辑框、进度条相连接。调整滑块位置同时显示滑块当前对应数值,达到设定要求时改变进度条的进度。

一、界面设计

滑块是slider control,进度条是progress control

对于三个滑块,修改属性:

对于三个示例编辑框,修改属性:

二、添加变量

三、初始化滑块和进度条

在Dlg.cpp中找到初始化函数 BOOL COOPEx3Dlg::OnInitDialog(),设置滑块、进度条的刻度范围、单位刻度。

在该函数里“添加额外初始化代码”下添加:

    m_CSlider1.SetRange(0, 255);///滑块1的范围
    m_CSlider1.SetTicFreq(15);///刻度
    m_CSlider1.SetPos(0);///初始指在0刻度上

    m_CSlider2.SetRange(0, 255);///滑块2
    m_CSlider2.SetTicFreq(15);
    m_CSlider2.SetPos(0);

    m_CSlider3.SetRange(0, 255);///滑块3
    m_CSlider3.SetTicFreq(15);
    m_CSlider3.SetPos(0);

    m_CProgress.SetRange(0, 100);///进度条的范围

四、添加事件

为对话框添加消息函数 OnHScroll,实现滑块、进度条、编辑框之间相互传递信息。
 
右键单击主对话框空白部分,打开类向导,选择“消息”,找到“WM_HSCROLL”,添加处理程序。
 
 
在Dlg.cpp里添加操作实现代码:
 
void COOPEx3Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	UpdateData(TRUE);

	CString str;

	m_SliderV1 = m_CSlider1.GetPos();///获取滑块1的刻度
	str.Format(_T("%d"), m_SliderV1);///转化为字符串
	SetDlgItemText(IDC_EDIT1, str);///显示在编辑框1中

	m_SliderV2 = m_CSlider2.GetPos();
	str.Format(_T("%d"), m_SliderV2);
	SetDlgItemText(IDC_EDIT2, str);

	m_SliderV3 = m_CSlider3.GetPos();
	str.Format(_T("%d"), m_SliderV3);
	SetDlgItemText(IDC_EDIT3, str);


	int tmp = 0;///设置个变量计数,每符合一个条件计数++
	if (this->m_CSlider1.GetPos() == 150)
		tmp++;
	if (this->m_CSlider2.GetPos() == 255)
		tmp++;
	if (this->m_CSlider3.GetPos() == 125)
		tmp++;
	if(tmp==0)///没有条件满足,进度为0
		this->m_CProgress.SetPos(0);
	if(tmp==1)///只有一个条件满足,进度为1/3
		this->m_CProgress.SetPos(33.3);
	if(tmp==2)///2个条件满足,进度为2/3
		this->m_CProgress.SetPos(66.6);
	if(tmp==3)///三个条件全部满足,进度为100%
		this->m_CProgress.SetPos(100);

	UpdateData(FALSE);

	CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}

六、结果图

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
5015次浏览 47人参与
# 你的实习产出是真实的还是包装的? #
1103次浏览 27人参与
# 巨人网络春招 #
11175次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
6907次浏览 37人参与
# 简历第一个项目做什么 #
31251次浏览 312人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186349次浏览 1115人参与
# 米连集团26产品管培生项目 #
4131次浏览 198人参与
# 面试紧张时你会有什么表现? #
30371次浏览 188人参与
# 简历中的项目经历要怎么写? #
309379次浏览 4152人参与
# 网易游戏笔试 #
6304次浏览 83人参与
# 职能管理面试记录 #
10687次浏览 59人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6850次浏览 154人参与
# 从哪些方向判断这个offer值不值得去? #
56698次浏览 357人参与
# 腾讯音乐求职进展汇总 #
160394次浏览 1105人参与
# 小红书求职进展汇总 #
226845次浏览 1356人参与
# AI时代,哪些岗位最容易被淘汰 #
62406次浏览 728人参与
# 你怎么看待AI面试 #
179273次浏览 1164人参与
# 正在春招的你,也参与了去年秋招吗? #
362529次浏览 2631人参与
# 你的房租占工资的比例是多少? #
92123次浏览 896人参与
# 机械求职避坑tips #
94396次浏览 567人参与
# 校招笔试 #
466318次浏览 2950人参与
# 面试官最爱问的 AI 问题是...... #
27111次浏览 834人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务