基于mfc对话框,CDispView从CScrollView驱动。左键点击时需要放大点,右键点击时放大点。以下部分工作。任何方式使它工作更好?相应地调整滚动条的大小,放大点等。如何放大和缩小CScrollView表面
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 2013-05-11 05:58:48