Как запретить полосы прокрутки в классе на основе CScrollView / CFormView в MFC (Windows Mobile 6) - PullRequest
3 голосов
/ 11 марта 2010

Я создаю приложение для Windows Mobile 6 с использованием интерфейса MFC Single Document Interface с базовым классом CFormView.

Я поместил CBitmapButton в ресурс Form / Dialog и поместил их внизу. CBitmapButtons прекрасно подходят, пока не появится программная клавиатура или приложение не будет закрыто другими приложениями. В этом случае нежелательные полосы прокрутки появляются внизу и справа от экрана.

Как мне убрать эту полосу прокрутки? в ресурсе диалога нет ни параметров «вертикальная полоса прокрутки», ни «горизонтальная полоса прокрутки».

Обновление: CFormView является производным от CScrollView, необходимо проверить CScrollView
Обновление: Зачем мне использовать CFormView (производный от CScrollView), если я не хочу полосу прокрутки? ans: , потому что я хочу представление, которое может содержать элементы управления (кнопки, текстовые поля и т. Д.).

1 Ответ

4 голосов
/ 11 марта 2010

Внутри исходного кода MFC, внутри viewscrl.cpp, находится функция void CScrollView::UpdateBars(). Внутри этой функции есть gem с именем EnableScrollBarCtrl(SB_BOTH, FALSE);

Поместите этот вызов функции в конец OnInitialUpdate(), и он прогонит полосы прокрутки.

Редактировать: Необходимо OnSize() также переопределить, чтобы не вызывать родительский OnSize()

...