
[VC++]在MAPX中如何移动 图元(即部件) 的位置?
这是我的一段代码if(1==m_bIsRangeMouseDown){if(m_dDistance_1>3.0){SaveLog(s_Temp);CMapXFeat...
这是我的一段代码if(1 == m_bIsRangeMouseDown){ if(m_dDistance_1 > 3.0){ SaveLog(s_Temp); CMapXFeatures m_Features = m_Rangelayer.AllFeatures(); CMapXPoints m_Points; m_Points.CreateDispatch(m_Points.GetClsid()); m_ctrlMapX.SetAutoRedraw(FALSE); m_Rangelayer.BeginAccess(miAccessReadWrite); m_Points.AddXY(dX, dY); m_Points.AddXY(m_dfCenterX_3, dY); m_Points.AddXY(m_dfCenterX_3, m_dfCenterY_3); m_Points.AddXY(dX, m_dfCenterY_3); m_Points.AddXY(dX, dY); //标记图元重排 m_Features.Item(1).Offset(dX, dY); m_Features.Item(1).Update(); m_Features.Item(2).Offset(m_dfCenterX_3, dY); m_Features.Item(2).Update(); m_Features.Item(4).Offset(dX, m_dfCenterY_3); m_Features.Item(4).Update(); //设置轨迹样式 //m_Features.Item(5).SetType(miFeatureTypeLine); //m_Features.Item(5).GetStyle().SetLineColor(miColorBlue); //m_Features.Item(5).GetStyle().SetLineStyle(1); //m_Features.Item(5).GetStyle().SetLineWidth(2); //重置原围栏线 m_Rangelayer.AllFeatures().Item(5).GetParts().Remove(1); //索引位置 m_Rangelayer.AllFeatures().Item(5).GetParts().Add(m_Points); m_Rangelayer.AllFeatures().Item(5).Update(); SaveLog("1"); m_Rangelayer.EndAccess(); m_ctrlMapX.SetAutoRedraw(TRUE); } }
展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询