Полосы прокрутки CScrollView в CDockablePane отключены

Я разработал элемент управления панели инструментов. Он находится внутри объекта CDockablePane. Поскольку инструменты внутри него могут нуждаться в прокрутке, я создал CScrollView как дочерний элемент панели и вставил инструменты внутри него как дочерние элементы. В зависимости от размера панели полосы прокрутки объекта CScrollView отображаются правильно, но нажатие на них не прокручивает представление. Кажется, они инвалиды. Когда я использую стиль SS_NOTIFY при создании CScrollView, объект CScrollView получает щелчки мыши, но когда я не использую стиль, это не так. Но кажется, что полосы прокрутки внутри элемента управления представления не получают клики. При наведении на них курсора мыши на полосах прокрутки не появляется никаких визуальных эффектов. Кажется, что полосы прокрутки отключены, пока я не создал и не манипулировал ими. В чем дело? колесо мыши работает. нажатие на полосы прокрутки принимается видом прокрутки, а не полосами прокрутки. внутри обработчика, я написал этот код:

CScrollBar *pScroll = GetScrollBarCtrl(SB_VERT);
if (pScroll->GetSafeHwnd())
{
    ...

если не верно. это означает, что представление прокрутки не имеет полосы прокрутки, но если так, то как оно отображается?! любая идея? ... так как я не получил ответа, я собираюсь уточнить мой вопрос с помощью примера кода: https://dl.dropboxusercontent.com/u/4829119/930501%20-%20t3.zip в этом примере, Как я могу прокрутить мое представление, как я делаю с другими представлениями, такими как представление класса и представление файла? снимок экрана с примером кода: https://www.dropbox.com/s/7pu5chpyj9hqeal/Screenshot%202014-07-23%2003.40.26.png

1 ответ

Вы инициализировали, вызвав SetScrollSizes? Полосы прокрутки включаются только тогда, когда sizeTotal больше, чем размер окна просмотра.

Другие вопросы по тегам