Показать сообщение отдельно
Старый 11.04.2006, 13:20   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Вот небольшая функция
X++:
    void ScrollWindow(int hWnd, boolean VertScroll, int delta)
    {
        int pos, minpos, maxpos, pagesize;
        container c;
        #winapi
        ;
        c = winapi::getScrollInfo(hWnd, VertScroll ? #SB_VERT : #SB_HORZ);
        if (conlen(c) == 4)
            [minpos, maxpos, pagesize, pos] = c;
        else
            throw error(strfmt("Код ошибки %1", conpeek(c, 1)));

        if (pos + delta < minpos) pos = minpos;
        else if (pos + delta > maxpos) pos = maxpos;
        else pos += delta;
        winapi::setScrollPos(hWnd, VertScroll ? #SB_VERT : #SB_HORZ, pos);
        winapi::sendMessageEx(hWnd, VertScroll ? #WM_VSCROLL : #WM_HSCROLL, (pos << 16) | #SB_THUMBPOSITION, 0);
    }
    ;
    ScrollWindow(PictWindow.hWnd(), true, 20);
    ScrollWindow(PictWindow.hWnd(), false, 20);
В принципе двигать скроллер можно и функцией PictWindow.scrollInfo();
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 11.04.2006 в 13:24.