1. 创建基于对话框的MFC应用程序,删去对话框中的其他控件(Ctrl+A,Delete)拖入控件Horizontal Scroll Bar (水平滚动条,同样也可以拖如垂直滚动条Vertical Scroll Bar),拖入Edit Control(文本编辑框),修改Edit Control属性,将read-only修改为True.ID修改为IDC_HSCROLL_EDIT.效果如下:
2. 重写WM_HSCROLL消息映射函数:右键类视图对话框类属性->消息->WM_HSCROLL->Add->进入函数体具体实现:
代码如下:
void CMFCApplicationExampleDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //nSBCode为消息码,nPos为滚动条当前位置
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int pos = m_HScrollBar.GetScrollPos();
switch (nSBCode)
{
case SB_LINELEFT: //向左滚动一行
pos -= 1;
break;
case SB_LINERIGHT: //向右滚动一行
pos += 1;
break;
case SB_PAGELEFT: //向左滚动一页
pos -= 10;
break;
case SB_PAGERIGHT: //向右滚动一页
pos += 10;
break;
case SB_LEFT: //滑块在最左端
pos = 0;
break;
case SB_RIGHT: //滑块在最右端
pos = 100;
break;
case SB_THUMBPOSITION: //滑块当前位置
pos = nPos;
break;
default:
SetDlgItemInt(IDC_HSCROLL_EDIT, pos); //设置编辑框的值为当前滑块位置的值
}
m_HScrollBar.SetScrollPos(pos); //设置滚动条的位置
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}