Вот обернул ScrollBar в класс. Реализовывалось под свои нужды, поэтому работа ведется только со стандартными скроллбарами контролов(т.е. с вертикальным, горизонтальным или сразу с обоими). Выкладываю код:
class ScrollBar : Window
{
public:
ScrollBar(HWND hParent)
{
_hParent = hParent;
}
void enableScrollBar(UINT wSBflags, UINT wArrows)
{
::EnableScrollBar(_hParent, wSBflags, wArrows);
}
void getScrollBarInfo(LONG idObject, PSCROLLBARINFO psbi)
{
::GetScrollBarInfo(_hParent, idObject, psbi);
}
void getScrollInfo(int fnBar, LPSCROLLINFO lpsi)
{
::GetScrollInfo(_hParent, fnBar, lpsi);
}
void scrollWindow(int dx, int dy, const RECT *prcScroll, UINT flags)
{
::ScrollWindowEx(_hParent, dx, dy, prcScroll, NULL, NULL, NULL, flags);
}
void setScrollInfo(int fnBar, LPCSCROLLINFO lpsi, BOOL fRedraw = TRUE)
{
::SetScrollInfo(_hParent, fnBar, lpsi, fRedraw);
}
void showScrollBar(int wBar, BOOL bShow = TRUE)
{
::ShowScrollBar(_hParent, wBar, bShow);
}
static WORD getScrollingReguest(WPARAM wParam)
{
return LOWORD(wParam);
}
};
В принципе дополнить класс для работы со скроллбаром как с отдельным контролом не проблема, может быть как-нибудь займусь(что там заниматься: пару строчек дописать и все
)
