代码如下:void CWLDispView::DrawRegion(CMapXPoints &pts)
{
try
{
  CMapXFeature f;
  f.CreateDispatch(f.GetClsid());
  
  f.AttachDispatch(m_ctrlMapX.GetDispatch());
  f.SetType(miFeatureTypeRegion);
  f.SetStyle(m_ctrlMapX.GetDefaultStyle());
  
  f.GetParts().Add(pts);
  m_ctrlMapX.GetLayers().Item(1).SetEditable(TRUE); // 开始没加这句,加了还是没用
  m_ctrlMapX.GetLayers().Item(1).AddFeature(f);
}
catch (COleDispatchException *e)
{
  e->ReportError();
  e->Delete();
}
catch (COleException *e)
{
  e->ReportError();
  e->Delete();
}
}下面是调用该函数添加区域对象:CMapXPoints pts;
CMapXPoint pt;if (!pts.CreateDispatch(pts.GetClsid()) ||
  !pt.CreateDispatch(pt.GetClsid()))
{
  TRACE0("Failed to Create object in CWLDispView::OnDrawRegion");
  return;
}try {
  pt.Set(-0.557745, 0.030208);
  pts.Add(pt);
  pt.Set(-0.420645, -0.111475);
  pts.Add(pt);
  pt.Set(-0.186876, -0.460804);
  pts.Add(pt);
  pt.Set(0.083569, -0.311162);
  pts.Add(pt);
  pt.Set(0.496727, -0.17233);
  pts.Add(pt);
  pt.Set(0.233157, 0.146991);
  pts.Add(pt);
  pt.Set(0.065893, 0.56262);
  pts.Add(pt);
  pt.Set(-0.271049, 0.328313);
  pts.Add(pt);
  pt.Set(-0.557745, 0.030208);
  pts.Add(pt);
  
  DrawRegion(pts);
}
catch (COleDispatchException *e)
{
  e->ReportError();
  e->Delete();
}
catch (COleException *e)
{
  e->ReportError();
  e->Delete();
}运行时弹出对话框说“该特性为只读特性”,我也不知道他说的是哪个特性为只读特性。没有添加成功,这是怎么回事?那位大侠帮帮忙阿!谢谢了