ArcGis Engine IIdentifyObj的hWnd無法實現的解決方法

sex3xx 13年前發布 | 2K 次閱讀 Porteus

在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的樣例

 本文由用戶 sex3xx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!