FAQ:WinAPI VCPP:запрет появления полос прокруток на CFormView
Материал из Весельчак У
Как запретить появление полос прокруток на форме класса CFormView, когда пользователь делает размер главного окна меньше размера формы?
Это можно сделать методом SetScaleToFitSize():
void CMyView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// скрываем полосы прокрутки
GetParentFrame()->RecalcLayout();
// это уберёт полосы прокрутки со вьюхи
ResizeParentToFit();
SIZE s={0, 0};
SetScaleToFitSize(s);
// далее вызовется обработчик OnPaint(), о котором ниже
//...
}
Также обратите внимание на одну особенность: в отладочной версии программы вызов OnPaint после выполнения SetScaleToFitSize() с параметром s={0, 0} происходит с ошибкой (программа при этом завершается). Обходится это так:
void CMyView::OnPaint()
{
#ifdef _DEBUG
CPaintDC dc(this);
#else
CFormView::OnPaint();
#endif
}
Или так:
void CMyView::OnPaint()
{
CPaintDC dc(this);
}