Re: 2 CListCtrl with one hor. scrollbar
Doug Harrison [MVP] schrieb:
On Sun, 10 Sep 2006 15:51:24 +0200, Johann Obermayr
<Johann.Obermayr@fastrun.at> wrote:
Hello,
I've two listctrl with same coloumns & same col-width.
i need a function to scroll list2 with list1 scrollbar.
Jimmy
Handle WM_HSCROLL and WM_VSCROLL as necessary and forward the messages to
the 2nd list control. To keep the controls in sync, you will also have to
watch keyboard navigation; for example, paging down doesn't generate scroll
messages. Looking for focus changes in LVN_ITEMCHANGED messages might help
with this, but it might be easier just to poll the 1st control's scrollbar
position after processing WM_KEYDOWN messages. A similar consideration
applies to scrollbar movement that occurs due to drag-selecting.
Hello,
I had test it with this.
But with move scrollbar ( SB_THUMBTRACK ) it wouldn't work.
BOOL CExListCtrl::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam,
LRESULT* pResult)
{
BOOL bOk = __super::OnWndMsg(message, wParam, lParam, pResult);
switch(message)
{
case WM_HSCROLL:
if (m_pBrotherCtrl)
m_pBrotherCtrl->SendMessage(message, wParam, NULL);
break;
}
return bOk;
}
And more information. On the list2 i will hide the scrollbar. at this time
i do it with
void CExJimListCtrl::OnNcCalcSize(BOOL bCalcValidRects,
NCCALCSIZE_PARAMS* lpncsp)
{
if (m_nScrollOff >= 0)
{
if(m_nScrollOff == SB_HORZ) ModifyStyle(WS_HSCROLL ,0,0); //Just
by modifing the style we remove the scrollbar
if(m_nScrollOff == SB_VERT) ModifyStyle(WS_VSCROLL,0,0);
if(m_nScrollOff == SB_BOTH) ModifyStyle(WS_HSCROLL |
WS_VSCROLL,0,0);
}
__super::OnNcCalcSize(bCalcValidRects, lpncsp);
}
Jimmy