阅读:1559回复:0
vc++ mo buffer问题,哪里不对?!
<P>实在是江郎才尽了,代码如下,请教,哪里有问题:</P>
<P>目标:点击图中地物,建立缓冲区,闪烁该缓冲区(编译可以通过),但无法实现目标</P> <P>// BUFFER<br>if(m_CurrentOperation == Query_Buffer ;; Button == 1)<br>{<br> m_SelectedMapLayer = m_map.GetLayers().Item(COleVariant(m_SelectedMapLayerItem));</P> <P> CMoRectangle m_Select_Rect(m_map.TrackRectangle());<br> CMoRecordset m_SelectedRecSet = m_SelectedMapLayer.SearchShape(m_Select_Rect,6,"");<br> CMoFields m_SelectedFields(m_SelectedRecSet.GetFields());<br> CMoField m_SelectedField(m_SelectedFields.Item(COleVariant(TEXT("Shape"))));</P> <P> if(!m_Buffer.CreateDispatch("MapObjects2.Polygon"))<br> return;</P> <P> VARIANT va;<br> VariantInit(;va);<br> va.vt = VT_DISPATCH;<br> CMoRectangle Extent(m_map.GetFullExtent());<br> va.pdispVal = Extent.m_lpDispatch;</P> <P> if(m_SelectedMapLayer.GetShapeType() == 23)<br> {<br> CMoPolygon* pPolygon = new CMoPolygon;<br> pPolygon->AttachDispatch(m_SelectedField.GetValue().pdispVal);<br> <br> m_Buffer.AttachDispatch(pPolygon->Buffer(10,va));<br> <br> m_map.FlashShape(m_Buffer,3);</P> <P> delete pPolygon;<br> }</P> <P> m_Buffer.ReleaseDispatch();<br>}// end of buffer</P><br><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em12.gif" /><img src="images/post/smile/dvbbs/em15.gif" /> [此贴子已经被作者于2007-6-6 19:41:05编辑过]
|
|