ArcGIS Engine+C# 初学者实例代码(3)

2019-04-09 19:11

///

/// 取得或设置PageLayoutControl ///

public IPageLayoutControl2 PageLayoutControl {

get { return m_pageLayoutControl; } set { m_pageLayoutControl = value; } }

///

/// 取得当前ActiveView的类型 ///

public string ActiveViewType {

get {

if (m_IsMapCtrlactive) return \ else

return \ } }

///

/// 取得当前活动的Control ///

public object ActiveControl {

get {

if (m_mapControl == null || m_pageLayoutControl == null) throw

Exception(\MapControl PageLayoutControl are not initialized!\

if (m_IsMapCtrlactive)

return m_mapControl.Object; else

return m_pageLayoutControl.Object; } }

#endregion

new or

#region Methods ///

/// 激活MapControl并解除the PagleLayoutControl ///

public void ActivateMap() {

try {

if (m_pageLayoutControl == null || m_mapControl == null) throw new Exception(\MapControl or PageLayoutControl are not initialized!\

//缓存当前PageLayout的CurrentTool

if (m_pageLayoutControl.CurrentTool != null) m_pageLayoutActiveTool = m_pageLayoutControl.CurrentTool;

//解除PagleLayout

m_pageLayoutControl.ActiveView.Deactivate();

//激活MapControl

m_mapControl.ActiveView.Activate(m_mapControl.hWnd);

//将之前MapControl最后使用的tool,作为活动的tool,赋给MapControl的CurrentTool

if (m_mapActiveTool != null) m_mapControl.CurrentTool = m_mapActiveTool;

m_IsMapCtrlactive = true;

//为每一个的framework controls,设置Buddy control为MapControl this.SetBuddies(m_mapControl.Object); }

catch (Exception ex) {

throw new Exception(string.Format(\ } }

///

/// 激活PagleLayoutControl并减活MapCotrol ///

public void ActivatePageLayout() {

try {

if (m_pageLayoutControl == null || m_mapControl == null) throw new Exception(\MapControl or PageLayoutControl are not initialized!\

//缓存当前MapControl的CurrentTool

if (m_mapControl.CurrentTool != null) m_mapActiveTool = m_mapControl.CurrentTool;

//解除MapControl

m_mapControl.ActiveView.Deactivate();

//激活PageLayoutControl

m_pageLayoutControl.ActiveView.Activate(m_pageLayoutControl.hWnd);

//将之前PageLayoutControl最后使用的tool,作为活动的tool,赋给PageLayoutControl的CurrentTool

if (m_pageLayoutActiveTool != null) m_pageLayoutControl.CurrentTool = m_pageLayoutActiveTool;

m_IsMapCtrlactive = false;

//为每一个的framework controls,设置Buddy control为PageLayoutControl

this.SetBuddies(m_pageLayoutControl.Object); }

catch (Exception ex) {

throw new Exception(string.Format(\ex.Message)); } }

///

/// 给予一个地图, 置换PageLayoutControl和MapControl的focus map ///

public void ReplaceMap(IMap newMap) {

if (newMap == null)

throw new Exception(\for replacement is not initialized!\

if (m_pageLayoutControl == null || m_mapControl == null)

throw new Exception(\MapControl or PageLayoutControl are not initialized!\

//create a new instance of IMaps collection which is needed by the PageLayout

//创建一个PageLayout需要用到的,新的IMaps collection的实例 IMaps maps = new Maps();

//add the new map to the Maps collection //把新的地图加到Maps collection里头去 maps.Add(newMap);

bool bIsMapActive = m_IsMapCtrlactive;

//call replace map on the PageLayout in order to replace the focus map

//we must call ActivatePageLayout, since it is the control we call 'ReplaceMaps'

//调用PageLayout的replace map来置换focus map

//我们必须调用ActivatePageLayout,因为它是那个我们可以调用\的Control

this.ActivatePageLayout();

m_pageLayoutControl.PageLayout.ReplaceMaps(maps); //assign the new map to the MapControl //把新的地图赋给MapControl m_mapControl.Map = newMap; //reset the active tools //重设active tools

m_pageLayoutActiveTool = null; m_mapActiveTool = null;

//make sure that the last active control is activated //确认之前活动的control被激活 if (bIsMapActive) {

this.ActivateMap();

m_mapControl.ActiveView.Refresh(); } else {

this.ActivatePageLayout();

m_pageLayoutControl.ActiveView.Refresh(); } }

///

/// bind the MapControl and PageLayoutControl together by assigning a new joint focus map

/// 指定共同的Map来把MapControl和PageLayoutControl绑在一起 ///

///

public void BindControls(IMapControl3 mapControl, IPageLayoutControl2 pageLayoutControl, bool activateMapFirst) {

if (mapControl == null || pageLayoutControl == null)

throw new Exception(\MapControl or PageLayoutControl are not initialized!\ m_mapControl = MapControl;

m_pageLayoutControl = pageLayoutControl;

this.BindControls(activateMapFirst); }

///

/// bind the MapControl and PageLayoutControl together by assigning a new joint focus map

/// 指定共同的Map来把MapControl和PageLayoutControl绑在一起 ///

/// public void BindControls(bool activateMapFirst) {

if (m_pageLayoutControl == null || m_mapControl == null)

throw new Exception(\MapControl or PageLayoutControl are not initialized!\

//create a new instance of IMap //创造IMap的一个实例

IMap newMap = new MapClass(); newMap.Name = \

//create a new instance of IMaps collection which is needed by the PageLayout

//创造一个新的IMaps collection的实例,这是PageLayout所需要的 IMaps maps = new Maps();

//add the new Map instance to the Maps collection //把新的Map实例赋给Maps collection maps.Add(newMap);

//call replace map on the PageLayout in order to replace the focus map //调用PageLayout的replace map来置换focus map


ArcGIS Engine+C# 初学者实例代码(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:医学遗传学习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: