Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Скроллы в ATL контроле


Автор: Gor777 17.5.2009, 22:19
Создаю ATL контрол.
Пытаюсь достучаться до скроллов.

в OnDraw делаю SetScrollBar

void CMyControl::SetScrollBars(void)
      {
        CRect rect;
        GetClientRect(&rect);
        SCROLLINFO scrollInfo;
        // Выравнивание HScroll
        GetScrollInfo(SB_HORZ, &scrollInfo);
        scrollInfo.nMin = 0;
        scrollInfo.nMax = 1000;
        scrollInfo.nPage = rect.Width();
        scrollInfo.nPos = m_ViewPos.x;
        SetScrollInfo(SB_HORZ, &scrollInfo);
        if((UINT)scrollInfo.nMax <= scrollInfo.nPage) m_ViewPos.x = 0;
}

в MFC код корректно работал

в ATL пришлось добавить 
         ShowScrollBar(SB_HORZ,TRUE);
иначе скролл не показывается, и параметры сбрасываются 

Кто сталкивался с такой проблемой ? smile 








Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)