В диалоговом окне mfc на основе CDispView выведен из CScrollView. Нужно увеличить масштаб до точки, когда нажимали кнопку мыши и уменьшали масштаб при нажатии правой кнопки мыши. Следующие работы частично. любой способ заставить его работать лучше ?. соответственно измените размеры полос прокрутки, увеличьте масштаб в точке и т. д.Как увеличить и уменьшить масштаб CScrollView Surface
xzfac = 1;
yzfac = 1;
void CDispView::OnInitialUpdate()
{
SetScrollSizes(MM_TEXT, CSize(cWidth, cHeight));
CScrollView::OnInitialUpdate();
}
void CDispView::OnDraw(CDC* pDC)
{
StretchDIBits(pDC->GetSafeHdc(), 0, 0,
(xzfac * pBmpInfo->bmiHeader.biWidth),
(yzfac * pBmpInfo->bmiHeader.biHeight),
0, 0, pBmpInfo->bmiHeader.biWidth,
pBmpInfo->bmiHeader.biHeight,
imageBuf, pBmpInfo, DIB_RGB_COLORS,
SRCCOPY);
}
void CDispView::refresh()
{
OnInitialUpdate();
}
void CDispView::OnLButtonDown(UINT nFlags, CPoint point)
{
yzfac = yzfac + 1;
xzfac = xzfac + 1;
refresh();
RedrawWindow();
CScrollView::OnLButtonDown(nFlags, point);
}
void CDispView::OnRButtonDown(UINT nFlags, CPoint point)
{
yzfac = yzfac - 1;
if (yzfac < 1) yzfac = 1;
xzfac = xzfac - 1;
if (xzfac < 1) xzfac = 1;
refresh();
RedrawWindow();
CScrollView::OnRButtonDown(nFlags, point);
}
Будет работать в этом случае, CDispView выведен из CScrollView? Я попробую. любые примеры ?. – user2045525