Mfc onvscroll не вызывается в классе основного кадра MDI
У меня есть проект на основе c++ MFC MDI, использующий сообщество visual studio 2013. Класс мэйнфрейма является производным от класса CMainFrame : public CMDIFrameWndEx
В класса мэйнфрейм предварительного создания полосы прокрутки устанавливается, как показано ниже.
cs.style |= WS_VSCROLL | WS_HSCROLL;Функция обратного вызова OnVScroll была добавлена для приема обратного вызова всякий раз, когда перемещается полоса прокрутки основного кадра. ON_WM_VSCROLL() был добавлен в карту сообщений в мэйнфрейме. Мы обнаруживаем, что OnVScroll никогда не вызывается. Как мы включаем обратные вызовы OnVScroll всякий раз, когда пользователь перемещает полосу прокрутки? Любая помощь будет очень признательна. Спасибо и с уважением, Ракеш
Что я уже пробовал:
Я не знаю, что делать. Я хотел вызвать SetScrollSizes в любом месте в классе мэйнфреймов.
Richard MacCutchan
Вы вызывали SetScrollSizes, и появляется ли полоса прокрутки в вашем окне?
Member 11380615
Спасибо, Ричард, да, полоса прокрутки появляется в главном окне фрейма. Всякий раз, когда количество дочерних окон и их сквозной экстент выходят за пределы клиентской области MDI, автоматически появляется вертикальная и горизонтальная полоса прокрутки.
Я не смог вызвать SetScrollSizes, так как эта функция недоступна в основном классе фреймов.
Richard MacCutchan
Это происходит потому, что полосы прокрутки связаны с окнами просмотра, а не с Мэйнфреймом. Вам нужно установить размеры прокрутки для каждого отдельного вида.
Member 11380615
Для каждого отдельного вида были установлены размеры прокрутки.