wuhanpl
路人甲
路人甲
  • 注册日期2006-05-06
  • 发帖数20
  • QQ
  • 铜币340枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1114回复:1

请大家帮忙解决查找结果闪烁问题!

楼主#
更多 发布于:2007-05-15 09:06
在AO+VC中怎样使通过属性查找到的图元结果在地图上不断的闪烁!
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2007-05-15 19:54
<PRE>你先找到 feature的geometry ,然后闪烁,可以参照下面的函数</PRE><PRE> </PRE><PRE>Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub FlashGeometry(pGeo As IGeometry, pMap As IMap, Optional iInterval As Integer = 300)
  'iInterval is in milliseconds
  
  Dim pSimpleLineSymbol As ILineSymbol, pSimpleFillSymbol As ISimpleFillSymbol
  Dim pSimpleMarkersymbol As ISimpleMarkerSymbol, pActive As IActiveView
  Dim pSymbol As ISymbol, pDisplay As IScreenDisplay, pColor As IRgbColor

  Set pColor = New RgbColor
  pColor.Red = 50
  pColor.Blue = 175
  pColor.Green = 50
  Set pActive = pMap
  Set pDisplay = pActive.ScreenDisplay
  
  pDisplay.StartDrawing 0, esriNoScreenCache
  
  Select Case pGeo.GeometryType
    Case esriGeometryPolyline
      Set pSimpleLineSymbol = New SimpleLineSymbol
      Set pSymbol = pSimpleLineSymbol  'QI
      pSymbol.ROP2 = esriROPNotXOrPen  'erase itself when drawn twice
      pSimpleLineSymbol.Width = 4
      pSimpleLineSymbol.Color = pColor
      pDisplay.SetSymbol pSimpleLineSymbol
      pDisplay.DrawPolyline pGeo
      Sleep iInterval
      pDisplay.DrawPolyline pGeo
    Case esriGeometryPolygon
      Set pSimpleFillSymbol = New SimpleFillSymbol
      Set pSymbol = pSimpleFillSymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleFillSymbol.Color = pColor
      pDisplay.SetSymbol pSimpleFillSymbol
      pDisplay.DrawPolygon pGeo
      Sleep iInterval
      pDisplay.DrawPolygon pGeo
    Case esriGeometryPoint
      Set pSimpleMarkersymbol = New SimpleMarkerSymbol
      Set pSymbol = pSimpleMarkersymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleMarkersymbol.Color = pColor
      pSimpleMarkersymbol.Size = 12
      pDisplay.SetSymbol pSimpleMarkersymbol
      pDisplay.DrawPoint pGeo
      Sleep iInterval
      pDisplay.DrawPoint pGeo
    Case esriGeometryMultipoint
      Set pSimpleMarkersymbol = New SimpleMarkerSymbol
      Set pSymbol = pSimpleMarkersymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleMarkersymbol.Color = pColor
      pSimpleMarkersymbol.Size = 12
      pDisplay.SetSymbol pSimpleMarkersymbol
      pDisplay.DrawMultipoint pGeo
      Sleep iInterval
      pDisplay.DrawMultipoint pGeo
    Case Else    ' Other type
  End Select
  
  pDisplay.FinishDrawing
End Sub
</PRE>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部