自己做要素的闪烁下面的方法需要传入四个参数,第一个是MapControl空间的ScreenDisplay对象,pGeometry是要被闪烁的要素图形,nTimer是闪烁的次数,而time是闪烁的时间。
这个方法只能用于闪烁Polygon类型要素。
Private Sub FlashPolygon(ByVal pDisplay As IScreenDisplay, ByVal pGeometry As IGeometry, ByVal nTimer As Integer, ByVal time As Integer)
Dim pFillSymbol As ISimpleFillSymbol
Dim pSymbol As ISymbol
Dim pRGBColor As IRgbColor
pRGBColor = New RgbColor
pRGBColor.Green = 128
pFillSymbol = New SimpleFillSymbol
pFillSymbol.Outline = Nothing
pFillSymbol.Color = pRGBColor
pSymbol = pFillSymbol
pSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen
Dim i As Integer
pDisplay.StartDrawing(0, esriScreenCache.esriNoScreenCache)
pDisplay.SetSymbol(pFillSymbol)
For i = 0 To nTimer
pDisplay.DrawPolygon(pGeometry)
System.Threading.Thread.Sleep(time)
Next
End Sub
-------------------------------
这个方法需要对ScreenDisplay对象有深入的了解,不过并不复杂,在我的书稿中对这个对象有详细的介绍。
代码经过测试,可以完美使用。