在MAPX中如何移动 图元(即部件) 的位置
这是移动图元的代码
double dX=5.0001, dY=5.0005;
CMapXLayer m_Rangelayer = m_ctrlMapX.GetLayers().Item("Stlayer");
CMapXFeatures m_Features = m_Rangelayer.AllFeatures();
m_ctrlMapX.SetAutoRedraw(FALSE);
m_Rangelayer.SetEditable(TRUE);
m_Features.Item(1).Offset(dX, dY);
m_Features.Item(1).Update();
m_ctrlMapX.SetAutoRedraw(TRUE);
这是创建图元的代码(单击鼠标位置创建图元 x y 分别是鼠标坐标)
double m_dMapXX=30,m_dMapXY=30;
float mXk,mYk;
mXk = x; //在屏幕上取得圆形的绘图范围 //如果不转换 由于经纬度之间的差距 并不是一个正圆
mYk = y;
m_ctrlMapX.ConvertCoord( &mXk,&mYk,&m_dMapXX,&m_dMapXY, miScreenToMap );
CMapXLayer pLayer =m_ctrlMapX.GetLayers().Item("Stlayer");
//创建点图元
CMapXPoint point;
point.CreateDispatch(point.GetClsid());
point.Set(m_dMapXX,m_dMapXY);
//创建图元样式
CMapXStyle style;
style.CreateDispatch(style.GetClsid());
style.SetSymbolType(miSymbolTypeBitmap);
style.SetSymbolBitmapSize(15);
style.SetSymbolBitmapName(_T("TRUC1-32.BMP"));
////设置MapX不进行自动更新
m_ctrlMapX.SetAutoRedraw(FALSE);
////设置图层可写
pLayer.SetEditable(TRUE);
//创建特征对象
VARIANT varPoint;
VARIANT varStyle;
varPoint.vt = VT_DISPATCH;
varPoint.pdispVal = point;
varStyle.vt = VT_DISPATCH;
varStyle.pdispVal = style;
CMapXFeatureFactory factory = m_ctrlMapX.GetFeatureFactory();
CMapXFeature feature = factory.CreateSymbol(varPoint,varStyle);
feature.SetKeyValue("car information");
//添加到图层
pLayer.AddFeature(feature);
//pLayer.Refresh();
//设置MapX进行自动更新
m_ctrlMapX.SetAutoRedraw(TRUE);
//设置图层不可写
//pLayer.SetEditable(FALSE);
****************************************
问题:
图元只闪烁但是不移动。不知道到底是为什么?