ArcGis Engine IIdentifyObj的hWnd無法實現的解決方法
在ArcGis Engine中閃爍元素會使用到IIdentifyObj的flash方法,遺憾的是在運行時環境下,該方法是無效的。
因為hWnd并沒有在ArcGis運行時中得以實現,必須安裝ArcGis Desktop。
故而要閃爍所選中的元素必須使用其他方式。
這是我們可以將IIdentifyObj轉化成IFeature接口,然后調他的Shape屬性來實現閃爍。例如
IFeature Feature = ((IRowIdentifyObject)pIdObj).Row as IFeature;
ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbol();
pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle;
ISymbol pSymbol;
IRgbColor pRGBColor = new RgbColor();
pRGBColor.Blue = 128;
pMarkerSymbol.Color = pRGBColor;
pSymbol = (ISymbol)pMarkerSymbol;
pSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
Control.ActiveView.ScreenDisplay.SetSymbol(pSymbol);
Control.FlashShape(Feature.Shape, 3, 200, pSymbol);
上面這個方法只是閃爍點的方法,同理可以閃爍面和線,請自行參考ArcGIS的樣例