阅读:1692回复:1
[转帖]LayerMenu类代码
using System;<br>using System.Drawing;<br>using System.Runtime.InteropServices;<br>using ESRI.ArcGIS.ADF.BaseClasses;<br>using ESRI.ArcGIS.ADF.CATIDs;<br>using ESRI.ArcGIS.Controls;<br>using ESRI.ArcGIS.Carto;<br>using ESRI.ArcGIS.Geometry;<br>using ESRI.ArcGIS.Display;<br>using NBGIS.PluginEngine;<br>namespace NBGIS.MainGIS<br>{<br> /// <summary><br> /// Summary description for LayerMenu.<br> /// </summary><br> [Guid("58b4faf5-a657-443f-bfac-57b7e10d903c")]<br> [ClassInterface(ClassInterfaceType.None)]<br> [ProgId("NBGIS.MainGIS.LayerMenu")]<br> public sealed class LayerMenu : BaseCommand<br> {<br> #region COM Registration Function(s)<br> [ComRegisterFunction()]<br> [ComVisible(false)]<br> static void RegisterFunction(Type registerType)<br> {<br> // Required for ArcGIS Component Category Registrar support<br> ArcGISCategoryRegistration(registerType);<br><br> //<br> // TOD Add any COM registration code here<br> //<br> }<br><br> [ComUnregisterFunction()]<br> [ComVisible(false)]<br> static void UnregisterFunction(Type registerType)<br> {<br> // Required for ArcGIS Component Category Registrar support<br> ArcGISCategoryUnregistration(registerType);<br><br> //<br> // TOD Add any COM unregistration code here<br> //<br> }<br><br> #region ArcGIS Component Category Registrar generated code<br> /// <summary><br> /// Required method for ArcGIS Component Category registration -<br> /// Do not modify the contents of this method with the code editor.<br> /// </summary><br> private static void ArcGISCategoryRegistration(Type registerType)<br> {<br> string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);<br> ControlsCommands.Register(regKey);<br><br> }<br> /// <summary><br> /// Required method for ArcGIS Component Category unregistration -<br> /// Do not modify the contents of this method with the code editor.<br> /// </summary><br> private static void ArcGISCategoryUnregistration(Type registerType)<br> {<br> string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);<br> ControlsCommands.Unregister(regKey);<br><br> }<br><br> #endregion<br> #endregion<br><br> private IHookHelper m_hookHelper;<br> private ITOCControlDefault m_tocControl;<br> private NBGIS.PluginEngine.IApplication m_App;<br><br> public LayerMenu(ITOCControlDefault tocControl,NBGIS.PluginEngine.IApplication app)<br> {<br> m_tocControl = tocControl;<br> m_App = app;<br> //<br> // TOD Define values for the public properties<br> //<br> base.m_category = "LayerMenu"; //localizable text<br> base.m_caption = "ChangeRendering"; //localizable text<br> base.m_message = "ChangeRendering"; //localizable text <br> base.m_toolTip = "ChangeRendering"; //localizable text <br> base.m_name = "LayerMenu_ChangeRendering"; //unique id, non-localizable (e.g. "MyCategory_MyCommand")<br><br> try<br> {<br> //<br> // TOD change bitmap name if necessary<br> //<br> string bitmapResourceName = GetType().Name + ".bmp";<br> //base.m_bitmap = new Bitmap(GetType(), bitmapResourceName);<br> base.m_bitmap = new Bitmap(this.GetType().Assembly.GetManifestResourceStream(bitmapResourceName));<br> }<br> catch (Exception ex)<br> {<br> System.Diagnostics.Trace.WriteLine(ex.Message, "Invalid Bitmap");<br> }<br> }<br><br> #region Overriden Class Methods<br><br> /// <summary><br> /// Occurs when this command is created<br> /// </summary><br> /// <param name="hook">Instance of the application</param><br> public override void OnCreate(object hook)<br> {<br> if (hook == null)<br> return;<br><br> if (m_hookHelper == null)<br> m_hookHelper = new HookHelperClass();<br><br> m_hookHelper.Hook = hook;<br><br> // TOD Add other initialization code<br> }<br><br> /// <summary><br> /// Occurs when this command is clicked<br> /// </summary><br> public override void OnClick()<br> {<br> IMapControlDefault pMapControl = m_hookHelper.Hook as IMapControlDefault;<br> IGeoFeatureLayer pGeoFeatLyr = pMapControl.CustomProperty as IGeoFeatureLayer;<br> if (pGeoFeatLyr == null) return;<br><br> SymbolForm symbolForm = new SymbolForm();<br><br> IStyleGalleryItem styleGalleryItem = null;<br> switch (pGeoFeatLyr.FeatureClass.ShapeType)<br> {<br> case esriGeometryType.esriGeometryPoint:<br> styleGalleryItem = symbolForm.GetItem(esriSymbologyStyleClass.esriStyleClassMarkerSymbols);<br> break;<br> case esriGeometryType.esriGeometryPolyline:<br> styleGalleryItem = symbolForm.GetItem(esriSymbologyStyleClass.esriStyleClassLineSymbols);<br> break;<br> case esriGeometryType.esriGeometryPolygon:<br> styleGalleryItem = symbolForm.GetItem(esriSymbologyStyleClass.esriStyleClassFillSymbols);<br> break;<br> }<br><br> symbolForm.Dispose();<br> m_App.MainPlatform.Activate();<br><br> if (styleGalleryItem == null) return; <br><br> ISimpleRenderer simpleRenderer = new SimpleRendererClass();<br> simpleRenderer.Symbol = (ISymbol)styleGalleryItem.Item;<br> pGeoFeatLyr.Renderer = simpleRenderer as IFeatureRenderer ;<br> <br> pMapControl.Refresh(esriViewDrawPhase.esriViewGeography, null, null);<br> this.m_tocControl.Update();<br> }<br><br> #endregion<br> }<br>}
|
|
|
1楼#
发布于:2009-06-04 11:31
你那个m_app对于大家来说可是够神秘的
|
|
|