单个滚动条控制两个CEDIT功能

有时候需要实现单个滚动条控制两个CEDIT功能,控制中间的滚动条左右能同时翻动, 如下图

实现方法大致如下 创建两个EDIT控件,都带滚动条,但是右侧的要隐藏

void CAlignSentenceView::OnInitialUpdate(){CView::OnInitialUpdate();CRect rect;GetClientRect(&rect);// TODO: 在此添加专用代码和/或调用基类m_etCH.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE |ES_AUTOVSCROLL, CRect (0, 0, rect.Width()/2, rect.Height()), this, IDC_EDIT_CH);m_etEG.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE |ES_AUTOVSCROLL, CRect (rect.Width()/2, 0, rect.Width(), rect.Height()), this, IDC_EDIT_EG);m_etCH.SetLimitText(UINT_MAX);m_etEG.SetLimitText(UINT_MAX);//右侧英文编辑框隐藏滚动条m_etEG.ShowScrollBar(SB_VERT, FALSE);}

EDIT控件是自己建立的,从CEDIT派生,在里面添加响应函数

BEGIN_MESSAGE_MAP(CAlignEdit, CEdit)ON_WM_VSCROLL()END_MESSAGE_MAP()void CAlignEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// TODO: 在此添加消息处理程序代码和/或调用默认值CEdit::OnVScroll(nSBCode, nPos, pScrollBar);CMainFrame* pFrame=(CMainFrame*)AfxGetMainWnd();CAlignSentenceView* pView = (CAlignSentenceView*)pFrame->GetActiveView();(pView->m_etEG)){pView->m_etEG.OnVScroll(nSBCode, nPos, pScrollBar);}}

,停止每日在车水马龙的市井里忙碌的穿梭,

单个滚动条控制两个CEDIT功能

相关文章:

你感兴趣的文章:

标签云: