如何使VScroll栏隐藏但工作?

时间:2016-05-16 12:36:36

标签: api mfc

有两种不同的拆分视图。

PinNameView (左), SignalView (右)

我把VScroll栏放在右侧视图上,当我使用V-Scroll滚动右侧视图时,我想让左侧视图滚动。

为了做到这一点并使两个视图同步滚动,我不得不在左视图上放置V-Scroll栏。

但我不想在左视图上放置V-Scroll栏。

所以,我使用 ShowScrollBar 函数来隐藏它。

但是当我隐藏它时,左侧视图不会移动,而当我放置时它会起作用。

我真的不希望滚动条显示在左侧视图中。

所以我决定让Vscroll栏滚动,然后在滚动后立即消失。

但它引起另一个问题,即眨眼。

因为我在短时间内打开和关闭滚动条,所以会导致问题。 我该如何解决这个问题?

void SignalView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
 CMainFrame *pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
 pMainFrame->SetActivePinNameView();
 PinNameView* pPinView = (PinNameView*) pMainFrame->GetActiveView();

/*
 pPinView->ShowScrollBar(SB_VERT,false);
 pPinView->OnVScroll(nSBCode,nPos,pScrollBar);    
*/

 pPinView->ShowScrollBar(SB_VERT,true);
 pPinView->OnVScroll(nSBCode,nPos,pScrollBar);
 pPinView->ShowScrollBar(SB_VERT,false);

 pMainFrame->SetActiveSignalView();

 CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}

0 个答案:

没有答案