利用GetScrollPos函数获得两个滚动条的位置,然后用LineScroll函数滚动相应的行数就好了
两个编辑控件分别为A和B
在A的事件表里找到EN_VSCROLL事件点击添加就会生成如图的两个事件函数,第一个是A的,在里面写上让B的滚动条和A同步的代码就好了,即让B的滚动条滚动n1-n2行就好了
LineScroll函数的滚动是滚动多少行,正数向下,负数向上,而不是滚动到多少行
void CmyexeDlg::OnEnVscrollEdit1()
{
int n1 = GetDlgItem(IDC_EDIT1)->GetScrollPos(SB_VERT);
int n2= GetDlgItem(IDC_EDIT2)->GetScrollPos(SB_VERT);
if (n1 == n2)return;
((CEdit *)GetDlgItem(IDC_EDIT2))->LineScroll(n1-n2);
// TODO: 在此添加控件通知处理程序代码
}
void CmyexeDlg::OnEnVscrollEdit2()
{
int n1 = GetDlgItem(IDC_EDIT2)->GetScrollPos(SB_VERT);
int n2 = GetDlgItem(IDC_EDIT1)->GetScrollPos(SB_VERT);
if (n1 == n2)return;
((CEdit *)GetDlgItem(IDC_EDIT1))->LineScroll(n1 - n2);
// TODO: 在此添加控件通知处理程序代码
}
//IDC_EDIT1,IDCEDIT2为两个控件id
对于多个控件可以循环处理。