www.pudn.com > ArcgisMapOperation.rar > CreateNewDocument.cs


using System; 
using System.Drawing; 
using System.Runtime.InteropServices; 
using System.Windows.Forms; 
using ESRI.ArcGIS.ADF.BaseClasses; 
using ESRI.ArcGIS.ADF.CATIDs; 
using ESRI.ArcGIS.Controls; 
using ESRI.ArcGIS.Carto; 
using ESRI.ArcGIS.SystemUI; 
using ArcgisMapOperation.Common; 
 
namespace ArcgisMapOperation.EsriLib 
{ 
    ///  
    /// 创建工作区(系统生成) 
    ///  
    public class CreateNewDocument : BaseCommand 
    { 
        private IHookHelper m_hookHelper = null; 
 
        //constructor 
        public CreateNewDocument() 
        { 
            //update the base properties 
            base.m_category = ".NET Samples"; 
            base.m_caption = "NewDocument"; 
            base.m_message = "Create a new map"; 
            base.m_toolTip = "Create a new map"; 
            base.m_name = "DotNetTemplate_NewDocumentCommand"; 
        } 
 
        #region 重写方法 
 
        ///  
        /// Occurs when this command is created 
        ///  
        /// Instance of the application 
        public override void OnCreate(object hook) 
        { 
            if (m_hookHelper == null) 
                m_hookHelper = new HookHelperClass(); 
 
            m_hookHelper.Hook = hook; 
        } 
 
        ///  
        /// Occurs when this command is clicked 
        ///  
        public override void OnClick() 
        { 
            IMapControl3 mapControl = null; 
 
            //get the MapControl from the hook in case the container is a ToolbatControl 
            if (m_hookHelper.Hook is IToolbarControl) 
            { 
                mapControl = (IMapControl3)((IToolbarControl)m_hookHelper.Hook).Buddy; 
            } 
 
            //In case the container is MapControl 
            else if (m_hookHelper.Hook is IMapControl3) 
            { 
                mapControl = (IMapControl3)m_hookHelper.Hook; 
            } 
            else 
            { 
                ClsMsgBoxAppear.MsgBoxExclamation("Active control must be MapControl!"); 
                return; 
            } 
 
            //告之用户时候保存工作区 
            DialogResult res = ClsMsgBoxAppear.MsgBoxQuestionWithYesNo("Would you like to save the current document?"); 
            if (res == DialogResult.Yes) 
            { 
                //launch the save command (why work hard!?) 
                ICommand command = new ControlsSaveAsDocCommandClass(); 
                command.OnCreate(m_hookHelper.Hook); 
                command.OnClick(); 
            } 
 
            //创建新地图 
            IMap map = new MapClass(); 
            map.Name = "Map"; 
 
            mapControl.DocumentFilename = string.Empty; 
            mapControl.Map = map; 
        } 
 
        #endregion 
    } 
}