[地理信息系统课程设计报告]
//获取MouseUp发生时的范围并缩小 IEnvelope pEnvelope;
if (m_feedBack == null)//鼠标未拉框时进行固定比例尺缩小 {
pEnvelope = pActiveView.Extent; pEnvelope.Expand(2, 2, true); pEnvelope.CenterAt(m_point); //获取新的范围
pActiveView.Extent = pEnvelope; //刷新视图
pActiveView.Refresh(); } else
{ //停止追踪
pEnvelope = m_feedBack.Stop();
//判断新的范围的高度和宽度是否为零
if (pEnvelope.Width == 0 || pEnvelope.Height == 0) {
m_feedBack = null; m_isMouseDown = false; } double dWidth = pActiveView.Extent.Width * pActiveView.Extent.Width / pEnvelope.Width; double dHeight = pActiveView.Extent.Height * pActiveView.Extent.Height / pEnvelope.Height;
double dXmin = pActiveView.Extent.XMin -
((pEnvelope.XMin - pActiveView.Extent.XMin) * pActiveView.Extent.Width /
pEnvelope.Width); double dYmin = pActiveView.Extent.YMin -
((pEnvelope.YMin - pActiveView.Extent.YMin) * pActiveView.Extent.Height /
pEnvelope.Height); double dXmax = dXmin + dWidth; double dYmax = dYmin + dHeight;
pEnvelope.PutCoords(dXmin, dYmin, dXmax, dYmax); //获取新的范围
pActiveView.Extent = pEnvelope; //刷新视图
pActiveView.Refresh(); }
m_feedBack = null; m_isMouseDown = false; }
#endregion
[地理信息系统课程设计报告]37 / 38
[地理信息系统课程设计报告]
} }
[地理信息系统课程设计报告]38 / 38
相关推荐: