cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:1692回复:1

[转帖]LayerMenu类代码

楼主#
更多 发布于:2009-06-03 09:06
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>}
喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
xxhhoddity
路人甲
路人甲
  • 注册日期2003-08-24
  • 发帖数409
  • QQ
  • 铜币1295枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-06-04 11:31
你那个m_app对于大家来说可是够神秘的
GIS GSI IGS ISG SIG SGI
举报 回复(0) 喜欢(0)     评分
游客

返回顶部