Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Scroll для CTreeView при больших обьёмах данных 
:(
    Опции темы
budweiser
Дата 10.5.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.5.2006

Репутация: нет
Всего: нет



Помогите!

В существующем проекте используется класс CTreeView. Например, class CLeftView : public CTreeView
Когда очень много данных (>65535) добавленных обычным InsertItem scroll bar сходит с ума.
MSDN советует использовать GetScrollInfo и SetScrollInfo для 32 битов. Свой scroll (точнее я его выудил в сетке) не помогает.
В тоже время вроде бы все работает с другими классами (пробовал разные примеры). 
Это что — проблема только класса CTreeView?  Я тут видел ссылки на баг Microsoft Q182231. Но там только Бейсик в <View products that this article applies to>. Хотя MSDN (в разделе Visual C++) про TVM_GETCOUNT также ссылается на Q182231.
Это можно как-то пофиксить или нет?  Может кто уже боролся с этим?  

заранее спасибо! 

а скролл такой:
Код

void CLeftView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
int iScrollBarPos = GetScrollPos( SB_VERT );

CRect rFrame;

GetClientRect( rFrame );

switch( nSBCode )
{
case SB_LINEUP:
iScrollBarPos = max( iScrollBarPos — m_iLineHeight, 0 );
break;

case SB_LINEDOWN:
iScrollBarPos = min( iScrollBarPos + m_iLineHeight, GetScrollLimit( SB_VERT ) );
break;

case SB_PAGEUP:
iScrollBarPos = max( iScrollBarPos — rFrame.Height(), 0 );
break;

case SB_PAGEDOWN:
iScrollBarPos = min( iScrollBarPos + rFrame.Height(), GetScrollLimit( SB_VERT ) );
break;

case SB_THUMBTRACK:
case SB_THUMBPOSITION:
{
SCROLLINFO si;

ZeroMemory( &si, sizeof(SCROLLINFO) );

si.cbSize = sizeof(SCROLLINFO);
si.fMask = SIF_TRACKPOS;

if( GetScrollInfo( SB_VERT, &si, SIF_TRACKPOS ) )
iScrollBarPos = si.nTrackPos;
else
iScrollBarPos = (UINT)nPos;
break;
}
} 

SetScrollPos( SB_VERT, iScrollBarPos );
Invalidate();
CWnd::OnVScroll(nSBCode, nPos, pScrollBar);
}
  
     
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.