air_621
路人甲
路人甲
  • 注册日期2005-05-09
  • 发帖数10
  • QQ
  • 铜币147枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1560回复:0

vc++ mo buffer问题,哪里不对?!

楼主#
更多 发布于:2007-06-06 19:38
<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编辑过]
喜欢0 评分0
游客

返回顶部