CListCtrl - доступ к ScrollBar?
От: Stamp Россия  
Дата: 29.06.04 10:12
Оценка:
Уважаемый олл, вопрос в следующем
Есть CListCtrl, в нем по умолчанию вертикальный скролл.
Для реализуемой задачи необходимо управлять им самому — т.е. назначать мин/макс колво элементов, двигать бегунок.
Как получить к нему доступ? Или необходимо создавать свой класс ListCtrlа, в котором и издеваться с ним руками?
Спасибо
Re: CListCtrl - доступ к ScrollBar?
От: Pavel Dvorkin Россия  
Дата: 29.06.04 10:23
Оценка: +1
Привет!

Stamp wrote:
>
> Уважаемый олл, вопрос в следующем
> Есть CListCtrl, в нем по умолчанию вертикальный скролл.
> Для реализуемой задачи необходимо управлять им самому — т.е. назначать мин/макс колво элементов, двигать бегунок.
> Как получить к нему доступ? Или необходимо создавать свой класс ListCtrlа, в котором и издеваться с ним руками?
> Спасибо

Доступ-то к нему получить несложно. listctrl — это окно, а поэтому, как
обычно, SetScrollInfo.
Но вот согласится ли лн с этим вмешательством — сильно сомневаюсь.
Представь себе, что ты сам его оконную функцию написал. Измеряешь
размеры элементов, сравниваешь с размерами окна, вызываешь SetScrollInfo
когда надо — азы, в общем. А теперь вдруг кто-то со стороны начинает
делать то же самое. Можно представить, что будет.

Попробуй, может, и получится. Метод следующий

Сабклассишь листконтрол.В перехватчике как минимум надо обрабатывать
WM_SIZE, все сообщения, связанные с добавлением и удалением элементов,
WM_V(H)SCROLL. Может, что-то еще... Т.е. тебе надо фактически полностью
заменить его работу со скроллбаром. А поэтому, каждый раз, когда он
что-то пытается с ним сделать, надо это действие перехватывать и
заменять на свое...

Вопрос — а зачем именно так нужно? Напиши подробнее о задаче, может,
есть более простое решение.

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.7 "Bedlam"
With best regards
Pavel Dvorkin
Re[2]: CListCtrl - доступ к ScrollBar?
От: Аноним  
Дата: 29.06.04 10:29
Оценка:
PD>Вопрос — а зачем именно так нужно? Напиши подробнее о задаче, может,
PD>есть более простое решение.

PD>--

PD>With best regards,
PD> Pavel Dvorkin

Пишу сонтрол для работы с самодельным датасетом. Почему самодельным — потому что используется специфическая БД.
Что надо от контрола?
1. Если курсор датасета на первой записи — ползунок вверху, на последней — внизу
2. иначе — маааленький такой ползуночек посередине
3. при нажатии ниже ползунка — pagedown, выше — pageup
4. на стрелки — на одну запись вверх

Данные хранятся только В ВИДИМОЙ области грида.
ПОнятно написал?
Re[2]: CListCtrl - доступ к ScrollBar?
От: Stamp Россия  
Дата: 29.06.04 10:33
Оценка:
Почему-то назвало мня анонимом...
Re[3]: CListCtrl - доступ к ScrollBar?
От: Pavel Dvorkin Россия  
Дата: 29.06.04 10:35
Оценка:
Привет!

Unknown wrote:
>
> PD>Вопрос — а зачем именно так нужно? Напиши подробнее о задаче, может,
> PD>есть более простое решение.
>
> PD>--
> PD>With best regards,
> PD> Pavel Dvorkin
>
> Пишу сонтрол для работы с самодельным датасетом. Почему самодельным — потому что используется специфическая БД.
> Что надо от контрола?
> 1. Если курсор датасета на первой записи — ползунок вверху, на последней — внизу
> 2. иначе — маааленький такой ползуночек посередине
> 3. при нажатии ниже ползунка — pagedown, выше — pageup
> 4. на стрелки — на одну запись вверх
>
> Данные хранятся только В ВИДИМОЙ области грида.
> ПОнятно написал?

Вполне. Я тут не большой специалист , но не исключено, что тебе подойдет
virtual listcontrol.

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.7 "Bedlam"
With best regards
Pavel Dvorkin
Re[4]: CListCtrl - доступ к ScrollBar?
От: Stamp Россия  
Дата: 29.06.04 10:37
Оценка:
PD>Вполне. Я тут не большой специалист , но не исключено, что тебе подойдет
PD>virtual listcontrol.
а это что за зверь?..
Re[5]: CListCtrl - доступ к ScrollBar?
От: Pavel Dvorkin Россия  
Дата: 29.06.04 10:42
Оценка:
Привет!

Stamp wrote:
>
> PD>Вполне. Я тут не большой специалист , но не исключено, что тебе подойдет
> PD>virtual listcontrol.
> а это что за зверь?..

ms-help://MS.MSDNQTR.2004JAN.1033/shellcc/platform/commctls/listview/listview_overview.htm#ListView_Creation

и там смотри virtual

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.7 "Bedlam"
With best regards
Pavel Dvorkin
Re[2]: CListCtrl - доступ к ScrollBar?
От: Stamp Россия  
Дата: 29.06.04 10:58
Оценка:
PD>Доступ-то к нему получить несложно. listctrl — это окно, а поэтому, как
PD>обычно, SetScrollInfo.
PD>Попробуй, может, и получится.

Не получается... После SetScrollInfo делаю GetScrollInfo — возвращает то же, что было и до того...
Re[3]: CListCtrl - доступ к ScrollBar?
От: Pavel Dvorkin Россия  
Дата: 29.06.04 11:00
Оценка:
Привет!

Stamp wrote:
>
> PD>Доступ-то к нему получить несложно. listctrl — это окно, а поэтому, как
> PD>обычно, SetScrollInfo.
> PD>Попробуй, может, и получится.
>
> Не получается... После SetScrollInfo делаю GetScrollInfo — возвращает то же, что было и до того...

Ничего удивительного. Я же говорил, конфликты возможны. Ты вызываешь
SetScrollInfo, оно влечет за собой, возможно, WM_VSCROLL, а обработчик
его вызывает опять SetScrollInfo и ставит как ему кажется нужным. Я это
к примеру, может, там и иначе...

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.7 "Bedlam"
With best regards
Pavel Dvorkin
Re[6]: CListCtrl - доступ к ScrollBar?
От: Stamp Россия  
Дата: 30.06.04 09:33
Оценка:
PD>Stamp wrote:
>>
>> PD>Вполне. Я тут не большой специалист , но не исключено, что тебе подойдет
>> PD>virtual listcontrol.
>> а это что за зверь?..

PD>ms-help://MS.MSDNQTR.2004JAN.1033/shellcc/platform/commctls/listview/listview_overview.htm#ListView_Creation

PD>и там смотри virtual

посмотрел... но мало чего понял... где еще чего почитать?.. посоветуйте плиз...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.