| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > CListBox. нужна ли прокрутка |
| Автор: _hunter 8.11.2006, 20:57 |
| Добрый день... Подскажите как определить нужна ли в CListBox полоса прокрутки (или как у него узнать (сам бокс это знает -- если прокрутка не нужна он ее серой делает)). И как эту полосу спрятать (точнее в обработчике какого сообщения выполнять вышеупомянутую проверку)? Не хочется перекрывать функции добавления/удаления и в них высоты итемов считать... С уважением... |
| Автор: Earnest 9.11.2006, 09:18 |
| 1) Посмотри функции GetScrollInfo 2) Чтобы листбокс не имел скрол-бара, когда места достаточно, нужно убрать флаг LVS_DISABLENOSCROLL (как раз этот флаг заставляет скроллбар оставаться и дизэблиться). |
| Автор: _hunter 9.11.2006, 12:00 | ||
| второе не помогло... написал:
но вертикальная полоса всеравно просто дисблится... |
| Автор: Earnest 10.11.2006, 08:50 | ||
| А если убить стиль прямо в ресурсах? (Горизонтальный скролл тоже). Кроме того, при вызове ModifyStyle, последний параметр ставь SWP_FRAMECHANGED. И можно одинм вызовом:
|
| Автор: _hunter 10.11.2006, 12:06 |
| из ресурсов убрал -- помогло. но в чем разница?.. |
| Автор: Earnest 10.11.2006, 14:06 |
| Думаю, в отсутствии флага SWP_FRAMECHANGED в вызове ModifyStyle: этот флаг заставляет окно пересчитать (и перерисовать) не-клиентскую область. А без него - это просто SetWindowLong. |