Hello Andre,
With your help,I broken at void ViewShell::SetZoomRect(const Rectangle&
rZoomRect) (sd\source\ui\view\viewshe2.cxx).
I think that the variable of nZoom is the key to this problem.
Further more, I tracked to the function:long Window::SetZoomRect (const
Rectangle& rZoomRect)(sd\source\ui\view\sdwindow.cxx)
The nZoom relies on rZoomRect to get it.But the rZoomRect is different every
time.It is very diffcult to get the place where rZoomRec was set.
In addition, I'm still unable to understand this codes:
if( (nX != 0) && (nY != 0) )
{
nX = (ULONG) ((double) aWinSize.Height()
* (double) ZOOM_MULTIPLICATOR / (double) rZoomRect.GetHeight());
nY = (ULONG) ((double) aWinSize.Width()
* (double) ZOOM_MULTIPLICATOR / (double) rZoomRect.GetWidth());
}
long nZoom = nFact * GetZoom() / ZOOM_MULTIPLICATOR;
Best Regards
LiuJianli