Вот что я выполняю
if (SetScrollPos(FScrollId, SB_CTL, Pos, true) <> -1) then
begin
SendMessage(FScrollId, WM_VSCROLL, MakeWparam(SB_THUMBPOSITION, Pos), 0);
end;
В SendMessage в качестве первого параментра указывал и GetParent(FScrollId), ноль по массе. Позиция скролбара перемещалась, а вот содержимое оствалось старым. А может есть такое сообщение для скролбара, которое заставит его выполнить перерисовку или обновление окна согласно новой позиции скрола?