滑动条(滚动)

在初始化对话框里,首先对滑动条进行初始化,并绑定控件变量

SCROLLINFO si={0};//滚动条结构
	si.cbSize=sizeof(si);
	si.fMask=SIF_RANGE|SIF_PAGE;//范围,从左边到右边
	si.nMin=0;   //最小值
	si.nMax=100;  //最大值
	si.nPage=10;//每滚动一页,走了10,间隔
	m_scroll.SetScrollInfo(&si);  //将si传到关联的变量m_scroll里面

在对话框属性消息列表里添加WM_HSCROLL(水平滚动),编辑函数

void Cdemo8Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	SCROLLINFO si={0};    //在处理滚动条消息之前,先取得滚动条的状态信息
	si.cbSize=sizeof(si);
	si.fMask=SIF_ALL;   //取得它的所有状态
	pScrollBar->GetScrollInfo(&si);//获得当前滚动条信息,pScrollBar表示当前滚动条,函数表示获得滚动条信息,信息在si里
	int nNewPos=si.nPos;  //滚动条的最新位置

	switch(nSBCode)       //选择滚动条消息
	{
	case SB_THUMBTRACK:   //拉动滚动条
		nNewPos=nPos; //最新的位置就等于当前位置,nPos变量在函数形参里
		break;
	case SB_LINELEFT:     //点击左箭头
		nNewPos-=1;
		break;
	case SB_LINERIGHT:    //点击右箭头
		nNewPos+=1;
		break;
	case SB_PAGELEFT:     //空白处左翻页,页的大小在初始化时已设置为10
		nNewPos-=si.nPage;
		break;
	case SB_PAGERIGHT:    //空白处右翻页
		nNewPos+=si.nPage;
		break;
	default:
		break;

	}
	pScrollBar->SetScrollPos(nNewPos); //将新的状态传递给滚动条,这样才能起作用,在此之前可以进行一个范围检查
	CString output;
	output.Format(_T("%d"),nNewPos);
	m_pos=output;     //m_pos是静态文本关联的value变量,就可以显示出来了

	
	UpdateData(FALSE);

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值