Как удалить полосу прокрутки в классе, производном от wxHtmlListBox? - PullRequest
0 голосов
/ 10 февраля 2009

В виджетах у меня есть класс с именем CListCtr, который является производным от wxHtmlListBox. Список содержит 100 элементов, но я просто хочу показать 10 элементов на одной странице, и когда я нажму кнопку pagedown, я получу еще одну страницу для отображения еще 10 элементов. Мне не нужна полоса прокрутки. Но он всегда добавляется при создании класса. Как я могу удалить полосу прокрутки или не создавать ее?

1 Ответ

0 голосов
/ 10 февраля 2009

wxHtmlListBox - это специализированное окно wxVScrolledWindow, которое обрабатывает саму полосу прокрутки. Естественно, когда в списке больше элементов списка, чем можно одновременно отобразить в клиентской области, появится полоса прокрутки.

Заметьте, однако, что нечего сказать, что ваш wxHtmlListBox должен содержать все доступные элементы. Если вам достаточно места для 10 элементов, просто вызовите SetItemCount (10) вместо SetItemCount (100), и вы не получите полосу прокрутки. Вы можете самостоятельно обрабатывать страницу вверх / вниз или любые другие навигационные клавиши и делать недействительным содержимое вашего wxHtmlListBox. Поскольку это виртуальный элемент управления, вам не нужно изменять какие-либо данные, вы просто возвращаете следующие или предыдущие 10 элементов в списке в методах OnGetItem () и OnGetItemMarkup () вашего производного класса.

Обратите внимание, что это просто идея, как реализовать это, я думаю, что это не очень хорошая вещь. Полоса прокрутки является индикатором того, что имеется больше данных и где пользователь находится относительно начала и конца данных. Не нарушайте предположения пользователя. Откуда ему знать, что страница вверх / вниз будет прокручивать видимые данные?

...