MFC水平滑动条的应用(四)

程序功能实现:

滑块可以拖动也可以点击 左右按左键,和滑块空白处。
设置 长度0-100 页面翻动为10
在这里插入图片描述
设置控件变量
在这里插入图片描述
设置控件变量
在这里插入图片描述
初始化滑动模块设置初始值

在这里插入图片描述

// TODO: 在此添加额外的初始化代码
	SCROLLINFO si ={0};//结构(滚动信息)
	si.cbSize=sizeof(si);//结构 信息大小
	si.fMask=SIF_RANGE|SIF_PAGE;//滚动条的范围
	si.nMin=0;//最小值为
	si.nMax=109;//最大值为
	si.nPage=10;//滑块点击跳转的长度(一页的长度)

	m_scroll.SetScrollInfo(&si);//滑动条的关变量获得信息

控制滑动模块,在界面信息里面找到水平滑动模块的处理函数
在这里插入图片描述

void CMFCday3BDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	SCROLLINFO si={0};//
	si.cbSize=sizeof(si);
	si.fMask=SIF_ALL;
	pScrollBar->GetScrollInfo(&si);
	int nNewPos=si.nPos;


	switch(nSBCode)//nSBCode 滑动条消息
	{
	case SB_THUMBTRACK://用鼠标点击拉动的信息
		nNewPos=nPos;//最新的位置
			break;
	case SB_LINELEFT://点击左键的信息
			nNewPos-=1;
			break;
	case SB_LINERIGHT://点击右键的信息
			nNewPos+=1;
		    break;
	case SB_PAGELEFT://点击左边翻页的信息
		nNewPos-=si.nPage;
		    break;
	case SB_PAGERIGHT://点击右边翻页的信息
		nNewPos+=si.nPage;

		    break;
	default:

	}
	if(nNewPos>si.nMax)//设置大小,不能出界
		nNewPos=si.nMax;
	if(nNewPos<si.nMin)
		nNewPos=si.nMin;

	pScrollBar->SetScrollPos(nNewPos);//将新的值设置入滑动条中

	CString s;//定义字符串
	s.Format(_T("%d"),nNewPos);//将nNewPos变成字符串
	m_poss= s;
	UpdateData(FALSE);
	CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值