阅读:1375回复:1
[求助]我在添加一个区域对象时,提示为“该特性为只读特性”,添加失败
<P>代码如下:</P>
<P>void CWLDispView::DrawRegion(CMapXPoints ;pts)<BR>{<BR> try<BR> {<BR> CMapXFeature f;<BR> f.CreateDispatch(f.GetClsid());<BR> <BR> f.AttachDispatch(m_ctrlMapX.GetDispatch());<BR> f.SetType(miFeatureTypeRegion);<BR> f.SetStyle(m_ctrlMapX.GetDefaultStyle());<BR> <BR> f.GetParts().Add(pts);<BR> m_ctrlMapX.GetLayers().Item(1).SetEditable(TRUE);<BR> m_ctrlMapX.GetLayers().Item(1).AddFeature(f);<BR> }<BR> catch (COleDispatchException *e)<BR> {<BR> e->ReportError();<BR> e->Delete();<BR> }<BR> catch (COleException *e)<BR> {<BR> e->ReportError();<BR> e->Delete();<BR> }<BR>}</P> <P>下面是调用该函数添加区域对象:</P> <P> CMapXPoints pts;<BR> CMapXPoint pt;<BR> <BR> if (!pts.CreateDispatch(pts.GetClsid()) ||<BR> !pt.CreateDispatch(pt.GetClsid()))<BR> {<BR> TRACE0("Failed to Create object in CWLDispView::OnDrawRegion");<BR> return;<BR> }</P> <P> try {<BR> pt.Set(-0.557745, 0.030208);<BR> pts.Add(pt);<BR> pt.Set(-0.420645, -0.111475);<BR> pts.Add(pt);<BR> pt.Set(-0.186876, -0.460804);<BR> pts.Add(pt);<BR> pt.Set(0.083569, -0.311162);<BR> pts.Add(pt);<BR> pt.Set(0.496727, -0.17233);<BR> pts.Add(pt);<BR> pt.Set(0.233157, 0.146991);<BR> pts.Add(pt);<BR> pt.Set(0.065893, 0.56262);<BR> pts.Add(pt);<BR> pt.Set(-0.271049, 0.328313);<BR> pts.Add(pt);<BR> pt.Set(-0.557745, 0.030208);<BR> pts.Add(pt);<BR> <BR> DrawRegion(pts);<BR> }<BR> catch (COleDispatchException *e)<BR> {<BR> e->ReportError();<BR> e->Delete();<BR> }<BR> catch (COleException *e)<BR> {<BR> e->ReportError();<BR> e->Delete();<BR> }</P> <P>运行时弹出对话框说“该特性为只读特性”,没有添加成功,这是怎么回事?</P> <P>那位大侠帮帮忙阿!谢谢了</P> |
|
1楼#
发布于:2006-08-03 15:14
<P>问题已经解决了。</P>
<P><BR> f.AttachDispatch(m_ctrlMapX.GetDispatch());//将这一行改成如下就行了==〉</P> <P> f.Attach(m_ctrlMapX.GetDispatch());<BR></P> <P>这里回答问题的人太少了,要么就是太不积极,要么就是太菜了……</P> <P>论坛的人气全靠发布资源,站长也该反省下了</P> |
|